Xml 为什么//元素在XPath中选择了太多的元素?
我正在从事一个项目,在这个项目中,我需要能够转换XML文档,并且需要能够识别Xml 为什么//元素在XPath中选择了太多的元素?,xml,xpath,Xml,Xpath,我正在从事一个项目,在这个项目中,我需要能够转换XML文档,并且需要能够识别Opportunity的名称,但是xpath表达式//Name返回所有者的名称和Opportunity的名称 XML示例: <root xmlns:foo="http://www.foo.org/" xmlns:bar="http://www.bar.org"> <Opportunity> <Owner> <Name>Christi
Opportunity
的名称
,但是xpath表达式//Name
返回所有者的名称
和Opportunity
的名称
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>
克里斯蒂安·贝尔
机会名称
我似乎找不到只返回opportunity名称的谓词。因为这两个元素都是其级别的最后一个Name
元素,//Name[last()]
和//Name[1]
仍然返回这两个元素
是否可以编写一个XPath表达式,只返回商机
的名称
,而不返回商机
所有者的名称?或者,在选择一个匹配的便笺后,是否可以删除它?只需使用即可
//Opportunity/Name/text()
了解//
选择后代(或自身),因此它通过设计跳过传统。要指定传统,请使用/
,默认情况下沿子轴选择:
/root/Opportunity/Name
然后,可从中单独选择
/root/Opportunity/Owner/Name
按要求