2010-05-14 79 views
6

Nokogiri仅支持XPath 1.0吗?我试图做简单的字符串替换一个价值的细胞,像这样(其中element包含有类似“*我的字符串(无用文本)”)Nokogiri(Ruby)和XPath

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

这是形成不良的XSL?或者Nokogiri有限制吗?

+0

如果'replace()'不起作用,我会假设XSLT 2.0不受支持。 ;-)你试图替换的字符串是什么? – Tomalak 2010-05-15 00:08:53

回答

6

replace()功能仅XPath 2.0中所定义(和XPath 2.x的仅由XSLT 2.x的支持,而不是XSLT 1.0)

引入nokogiri使用libxml2,只支持的XPath 1.0/XSLT1。 0

+0

这是2014年的情况吗? – marvin 2014-01-11 23:02:32

+2

@marvin,它在libxml方面仍然是一样的。但是,现在有Saxon/C,它是Saxon(用于XPath 2/XSLT 2,转换为C)。如果Nokogiri开发人员选择使用Saxon/C,那么它将提供对XPath 2的支持,并且在将来甚至可能会为XPath 3提供支持。有关更多信息,请阅读以下内容:http://www.saxonica.com/撒克逊-C/INDEX.XML – 2014-01-12 17:06:14