在XML :: LibXML中实现了什么版本的XPath?

jac*_*ter 5 xml perl xpath libxml2

有谁知道在XML :: LibMXL中实现了哪个版本的XPath规范?

或者更重要的是,在哪里可以找到我可以在LibXML中使用的XPath函数的描述?

例如,我尝试过类似的东西

$dcDOM->findvalue('//dc:identifier[contains(@xsi:type,"URI")]');
Run Code Online (Sandbox Code Playgroud)

这看起来很好,但是

$dcDOM->findvalue('//dc:identifier[matches(@xsi:type,"URI")]');
Run Code Online (Sandbox Code Playgroud)

才不是.

从那一点开始,我们必须假设它最多支持XPath 1.0或1.0/2.0的某个子集.

是否有一个整洁的页面列出和描述了所有内容?

kjh*_*hes 9

正如您从探测中推测的那样,XML :: LibXML支持XPath 1.0(而不是2.0).

一般来说,XPath本身无法确定除此类探测之外的版本.另一方面,XSLT提供system-property('xsl:version')了识别版本信息.

走源遗产路线:XML :: LibXML 基于 libxml2,它实现了 XPath 1.0,如Libxml2主页上所述:

Libxml2实现了许多与标记语言相关的现有标准:

     XML Path Language (XPath) 1.0: http://www.w3.org/TR/xpath
Run Code Online (Sandbox Code Playgroud)

您可能会问为什么libxml2不支持XPath 2.0?或者从维护者Daniel Veillard那里读到一篇旧文章,其中说XPath 2.0规范"太大而且太干扰",但底线仍然存在:XML :: LibXML支持XPath 1.0,而不是2.0.