2010-05-14 9 views
6

¿Nokogiri solo es compatible con XPath 1.0? Estoy tratando de hacer el reemplazo simple cadena en un valor de celda, como tal (donde element contiene algo así como '* Mi cadena (texto inútil)')Nokogiri (Ruby) y XPath

<xsl:value-of select="replace(element,'^\*\ (.+)\ \(.*\)$','\\1')"> 

Es esta XSL mala formación? ¿O hay una limitación con Nokogiri?

+0

Si 'replace()' no funciona, supongo que XSLT 2.0 no es compatible. ;-) ¿Cuál es la cuerda que intentas reemplazar? – Tomalak

Respuesta

6

La función replace() solamente se define en XPath 2.0 (y XPath 2.x solamente está soportado por 2.x XSLT, no XSLT 1,0)

Nokogiri utiliza libxml2, que sólo admite XPath 1.0/XSLT1. 0

+0

¿Sigue siendo así en 2014? – marvin

+2

@marvin, sigue siendo el mismo con respecto a libxml. Sin embargo, ahora hay Saxon/C, que es sajón (para XPath 2/XSLT 2, traducido a C). Si los desarrolladores de Nokogiri eligen usar Saxon/C, esto brindará soporte para XPath 2, y en el futuro, probablemente brinde soporte incluso para XPath 3. Para obtener más información, lea esto: http://www.saxonica.com/ saxon-c/index.xml –

Cuestiones relacionadas