我有一个 XML 文档,其中一些节点有.
以他们的名义:
<com.site.blah>
<id>asdkjasd</id>
<com.site.testing>
<name>test</name>
</com.site.testing>
</com.site.blah>
如果我尝试@doc.search("/*/id").first.xpath
,它返回/com.site.blah/id
,但如果我这样做:@doc.search("/com.site.blah/id").first.inspect
它返回nil
.
我希望能够进行 XPath 查询来选择下面的名称com.site.testing
,但它一直拒绝我的查询。
有任何想法吗?
(如果有影响的话我正在使用 hpricot)
您的 XPath 库已损坏。 XPath 名称测试是 QName (http://www.w3.org/TR/xpath/#NT-NameTest http://www.w3.org/TR/xpath/#NT-NameTest),在遵循 EBNF 的兔子洞之后,其中包括句点(http://www.w3.org/TR/REC-xml/#NT-NameChar http://www.w3.org/TR/REC-xml/#NT-NameChar)。向开发人员报告错误。
作为解决方法,注释中提到的转义机制都不是 XPath 的一部分,但您可以尝试使用谓词来检查元素名称,如下所示:
/*[name(.) = 'com.site.blah']/id
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)