Pregunta

Por alguna razón, mesa de XSLT YQL no puede analizar mi hoja de estilo. He utilizado la hoja de estilo XSLT con éxito con el servicio de W3C. Este es un ejemplo del problema en YQL consola . ¿Por qué esto no funciona en YQL?

Además, todavía tengo que encontrar la manera de pasar los resultados de una consulta YQL a la mesa XSLT como el XML que se transformó al tiempo que precisa una URL de estilo. solución actual es abusar de servicio del W3C.

¿Fue útil?

Solución

Su hoja de estilo se define como 1.0, pero que está utilizando replace() y tokenize() que es parte del estándar 2.0. Sin embargo, es un XSLT totalmente válido / XPath 2.0 hoja de estilo.

Otros consejos

Como una adición a Per T respuesta, cambie esto:

<xsl:variable name="r">
<xsl:value-of select="replace(tr/td/p/a/following-sibling::text(),
                              '\s*-\s*(\d+)\.(\d+)\.(\d+)\s*',
                              '$1,$2,$3')" />
</xsl:variable>

Con esta:

<xsl:variable name="r" 
        select="translate(tr/td/p/a/following-sibling::text(),'. -',',')">

Estos:

tokenize($r,',')[1]

tokenize($r,',')[2]

tokenize($r,',')[3]

Con los siguientes:

substring-before($r,',')

substring-before(substring-after($r,','),',')

substring-after(substring-after($r,','),',')

Nota: : Esto es sólo en caso de que no sabe la cantidad de dígitos con antelación, de lo contrario podría hacer:

substring($r,1,2)

substring($r,4,2)

substring($r,7)

Además, este

replace(tr/td/p[@class='t11bold']/a,'\s+',' ')

Debería ser lo siguiente:

normalize-space(tr/td/p[@class='t11bold']/a)

Y finaly esto:

replace($d,'^[^\[]*\[\s*(\d+:\d{2})?\s*-?\s*([^\]]*)\]\s*$','$2')

Podría ser:

normalize-space(substring-after(substring-before(substring-after($d,'['),']'),'-'))
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top