You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

XPath排除查询需求:Q1值不为Q1Yes时返回对应DD的值

符合需求的XPath查询语句

需求:仅提取**同一rowinstance节点下,name属性为Q1的field节点文本值不是Q1Yes**对应的name属性为DD的field节点文本内容。

XML示例

<form>
<field name="ImageQualityRepeating" visible="true">
<rowinstance entryMod="Daily Diary" id="Daily Diary_1689194865577:0" index="1" lockedRow="false" newrow="true">
    <field name="Q1" visible="true">Q1Yes</field>
    <field name="Q1Yes" visible="true">true</field>
    <field name="QCDone" visible="true">QCDoneCheck</field>
    <field name="DD" visible="true">1</field>
</rowinstance>
<rowinstance entryMod="Daily Diary" id="Daily Diary_1689194865677:0" index="1" lockedRow="false" newrow="true">
    <field name="Q1" visible="true"/>
    <field name="Q1Yes" visible="true">true</field>
    <field name="QCDone" visible="true">QCDoneCheck</field>
    <field name="DD" visible="true">2</field>
</rowinstance>
</field>
</form>

现有查询语句及结果

  • 查询Q1值的语句:
/form/field[@name='ImageQualityRepeating']/rowinstance/field[@name='Q1' and @visible='true']/text()

返回结果:Q1Yes

  • 查询DD值的语句:
/form/field[@name='ImageQualityRepeating']/rowinstance/field[@name='DD' and @visible='true']/text()

返回结果:1

满足需求的XPath语句

/form/field[@name='ImageQualityRepeating']/rowinstance[field[@name='Q1' and @visible='true']/text() != 'Q1Yes' or not(field[@name='Q1' and @visible='true']/text())]/field[@name='DD' and @visible='true']/text()

语句逻辑说明

  1. 先筛选出符合条件的rowinstance节点:
    • 要么name为Q1的field文本值不等于Q1Yes
    • 要么name为Q1的field没有文本内容(比如示例中第二个rowinstance的Q1是空节点)
  2. 再从这些符合条件的rowinstance下,提取name为DD且visible为true的field的文本值

在给定的XML示例中执行该语句,会返回2,完全匹配需求。

内容的提问来源于stack exchange,提问作者user2568374

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 08:35:32