我正在开发一个项目,我需要能够转换XML文档,并且需要能够识别Name
的{{1}},但xpath表达式{{1} }返回Opportunity
的{{1}}和//Name
的{{1}}。
示例XML:
Name
我似乎无法找到只会返回商机名称的谓词。由于两者都是其级别的最后一个Owner
元素,因此Name
和Opportunity
仍然会返回这两个元素。
是否可以编写仅返回 <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>
的{{1}}而不是Name
//Name[last()]
的名称的XPath表达式?或者可以在选择之后消除其中一个匹配的音符?
答案 0 :(得分:2)
了解//
选择后代(或自我),因此它会按设计跳过遗产。要指定遗产,请使用/
,默认情况下沿子轴选择:
/root/Opportunity/Name
然后可以从中单独选择
/root/Opportunity/Owner/Name
按要求。
答案 1 :(得分:1)
只需使用
//Opportunity/Name/text()