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 命令,我可以在其中排除内部 Year 标签并仅使用外部标签

解决方法

试试这个只得到外年

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

如果需要,Year 节点(节点)总是 Cars 的直接子节点

//Cars/Year/text()

应该还可以

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...