xml - 如何通过 XPath 选择缺少属性值的元素?

标签 xml xpath

例如:我想查找没有节点id="year"keywords,并返回“Train”:

<r>
<keywords>
    <node id="family" keyref="Transport"></node>
    <node id="product" keyref="Car"></node>
    <node id="year" keyref="2017"></node>
</keywords>

<keywords>
    <node id="family" keyref="Transport"></node> 
    <node id="product" keyref="Train"></node>       <- FIND THIS
</keywords>

<keywords>
    <node id="family" keyref="Transport"></node>
    <node id="product" keyref="Bike"></node>
    <node id="year" keyref="2017"></node>
</keywords>
</r>

最佳答案

这个 XPath,

//node[not(@id="year")]

将选择所有没有@id="year"属性值的node元素。如果您只需要 keyref 属性,则可以附加 /@keyref


这个 XPath,

//keywords[not(node/@id="year")]

将选择所有没有带有 @id="year"node 子元素的 keywords 元素。

关于xml - 如何通过 XPath 选择缺少属性值的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51632411/

相关文章:

javascript - 选择 DOM javascript 中的最后一个元素

xpath - 遵循所有 p 标签,除非并在出现其他类型的同级时停止

xpath - 如何通过XPath获取没有属性的元素

sql-server - 如何在 SQL Server 2012 中从 XML 层次结构的下一级查询另一个属性?

html - 使用 text() 的 XPath 定位元素不起作用

Java + XML |从同名节点的深层树中访问特定节点

java - vtd-xml 解析元素的多次出现

php - 使用 xpath 时避免类中的某些元素

xml - 使用 Eclipse 的 XSD Schema 图

.net - .NET 中的 XML 代码注释