我正在一个项目中,我需要能够转换XML文档,并且需要能够标识Name
的Opportunity
,但是xpath表达式//Name
返回< cc>和Name
的Owner
。
Demo
XML示例:
<root xmlns:foo="http://www.foo.org/" xmlns:bar="http://www.bar.org">
<Opportunity>
<Owner>
<Name>Christian Bale</Name>
</Owner>
<Name>Opportunity Name</Name>
</Opportunity>
</root>
我似乎找不到仅返回机会名称的谓词。由于这两个元素都是其级别上的最后一个
Name
元素,因此Opportunity
和Name
仍会返回两者。是否可以编写仅返回
//Name[last()]
的//Name[1]
而不返回Name
Opportunity
名称的XPath表达式?还是可以在选择匹配的音符之一后消除它?
最佳答案
了解//
选择后代(或自身),因此它会按设计跳过继承。要指定遗产,请使用/
,它默认沿子轴进行选择:
/root/Opportunity/Name
然后可以分别从
/root/Opportunity/Owner/Name
按照要求。
关于xml - 为什么元素在XPath中选择太多元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48689578/