gpt4 book ai didi

xml - 属性不等于或不存在的元素的 XPath

转载 作者:数据小太阳 更新时间:2023-10-29 01:42:04 35 4
gpt4 key购买 nike

我有以下 XML 格式:

<test>
<table>
<rows>
<row ID = "1" Name ="A"/>
<row ID = "2" SubID = "1" Name ="B"/>
<row ID = "3" Name ="C"/>
<row ID = "4" SubID = "1" Name ="D"/>
<row ID = "5" Name ="E"/>
<row ID = "4" SubID = "2" Name ="E"/>
</rows>
.
.
</table>
</test>

我想获取除具有 SubID = 1 的行之外的所有行。

困难的部分是,并非所有行都具有名为 SubID 的属性,并且并非所有具有属性 SubID 的行都具有相同的属性值(value)

理想的输出应该是:

<row ID = "1" Name ="A"/>
<row ID = "3" Name ="C"/>
<row ID = "5" Name ="E"/>
<row ID = "4" SubID = "2" Name ="E"/>

我曾尝试使用对值取反的 XPath,但这行不通:

/test/table/row/not(@SubID=1)

有什么帮助吗?

最佳答案

“困难的部分”其实很简单:一个基本的

元素[not(@属性= 'value ')]

谓词将排除 没有属性元素 元素 < em>属性等于

因此,在您的特定情况下,所有 @SubID 不等于 1row 元素:

/test/table/rows/row[not(@SubID = '1')]

选择

<row ID="1" Name="A"/>
<row ID="3" Name="C"/>
<row ID="5" Name="E"/>
<row ID="4" Name="E" SubID="2"/>

根据要求。

关于xml - 属性不等于或不存在的元素的 XPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34632699/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com