问题描述
<Cars>
<Year> 2021 </Year>
<Model>
<Name> Porsche 911 </Name>
<Year> 2020 </Year>
</Model>
<Model>
<Name> Porsche 911 </Name>
<Year> 2019 </Year>
</Model>
<Model>
<Name> Porsche Cayenne </Name>
<Year> 2019 </Year>
</Model>
</Cars>
现在我想提取2021年,它不是该特定模型的年份,而是编写此 XML 的日期(它是外部的)
但要做到这一点......由于路径上的限制没有被硬编码,我使用了 //Year//text()
但它给出的输出为 [2021,2020,2019,2019]
。我不希望这样,因为如果顺序改变,索引就会改变,这会产生问题。
请帮助使用 XPath 命令,我可以在其中排除内部 Year 标签并仅使用外部标签。
解决方法
试试这个只得到外年
//Year[not(preceding-sibling::Name)]/text()
如果需要,Year
节点(节点)总是 Cars
的直接子节点
//Cars/Year/text()
应该还可以