XPath命令,只获取特定的元素数据,而不获取其他元素数据



假设我有一个XML文件-

<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年2021,它不是该特定模型的年份,而是编写该XML的日期(它是外部的(

但要做到这一点。。由于路径没有被硬编码的限制,我使用了//Year//text(),但它给出的输出是[2021,2020,2019,2019]。我不希望这样,因为如果顺序改变,索引也会改变,这会产生问题。

请帮助使用XPath命令,在该命令中,我可以排除内部Year标记,而只使用外部标记。

试试这个,只获得外层年份的

//Year[not(preceding-sibling::Name)]/text()

如果所需的Year节点总是Cars的直接子节点,则

//Cars/Year/text()

也应该正常

最新更新