xml - 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[not(preceding-sibling::Name)]/text()
如果需要Year
的节点(节点)始终是Cars
then的直接子节点
//Cars/Year/text()
应该也可以
推荐阅读
- java - 使用 ImageIO 读取 PNG 输入空异常
- java - Spring - 需要一个找不到的“app.user.UserRepository”类型的bean
- java - 如何在不覆盖当前文本的情况下将文本添加到文本字段?
- python - 使用 Swig 在成员中使用互斥体包装 C++ 类时出现问题
- ios - 如何检测用户是否在 iOS 中离开我的应用程序?
- azure - 使用 Azure CLI 创建 Cosmos DB 容器时出现“找不到资源”错误
- sql - 计算经验而不重叠
- javascript - DynamoDB:ValidationException:提供的关键元素与架构不匹配
- ajax - 如何在 ajax 中为 laravel 发送 id
- c# - 使用带有 asp.net cshtml 的数据库