xpath 根据条件获取第一个元素
xpath get first element based on condition
我需要我的 xpath 表达式 select 仅 xml 文件的第一个子元素基于条件。假设第一个有 field1=B。
我使用这个表达式,但它 return 与 field1=A.
<root>
<entry>
<field1>A</field1>
<field2>10</field2>
</entry>
<entry>
<field1>B</field1>
<field2>20</field2>
</entry>
/root/entry[//field1='B' or 'C'][1]
我该怎么做?
应该是
/root/entry[.//field1='B' or .//field1='C'][1]
注意 entry[//field1='B'][1]
表示 return 第一个 entry
节点如果 field1
节点值为 'B'
存在(XML) 而 entry[.//field1='B'][1]
表示 return 第一个 entry
节点,如果它有一个值为 [=15= 的后代 field1
节点]
也可以将表达式简化为
/root/entry[field1='B' or field1='C'][1]
if field1
总是显示为 entry
的直接子代
我需要我的 xpath 表达式 select 仅 xml 文件的第一个子元素基于条件。假设第一个有 field1=B。 我使用这个表达式,但它 return 与 field1=A.
<root>
<entry>
<field1>A</field1>
<field2>10</field2>
</entry>
<entry>
<field1>B</field1>
<field2>20</field2>
</entry>
/root/entry[//field1='B' or 'C'][1]
我该怎么做?
应该是
/root/entry[.//field1='B' or .//field1='C'][1]
注意 entry[//field1='B'][1]
表示 return 第一个 entry
节点如果 field1
节点值为 'B'
存在(XML) 而 entry[.//field1='B'][1]
表示 return 第一个 entry
节点,如果它有一个值为 [=15= 的后代 field1
节点]
也可以将表达式简化为
/root/entry[field1='B' or field1='C'][1]
if field1
总是显示为 entry