2010-05-14 76 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