首页 > 解决方案 > 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 年,这不是该特定模型的年份,而是编写此 XML 的日期(它是外部的)

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

请帮助使用 XPath 命令,我可以在其中排除内部年份标签而只使用外部标签。

标签: xmlxpathxml-parsingxpath-2.0domxpath

解决方案


试试这个只得到外年

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

如果需要Year的节点(节点)始终是Carsthen的直接子节点

//Cars/Year/text()

应该也可以


推荐阅读