XPATH 多元素过滤器

标签 xpath multiple-conditions

我有以下示例 XML 结构:

<SavingAccounts>
    <SavingAccount>
       <ServiceOnline>yes</ServiceOnline>
       <ServiceViaPhone>no</ServiceViaPhone>
    </SavingAccount>
    <SavingAccount>
       <ServiceOnline>no</ServiceOnline>
       <ServiceViaPhone>yes</ServiceViaPhone>
    </SavingAccount>
</SavingAccounts>

我需要做的是使用 XPATH 过滤“SavingAccount”节点,其中“ServiceOnline”的值为“yes”或“ServiceViaPhone”的值为 yes。

XPATH 应该返回两行!!我可以过滤两个元素值都是 yes 的“SavingAccount”节点,如下面的 XPATH 示例,但我想要做的是 or 元素值比较???

/SavingAccounts/SavingAccount/ServiceOnline[text()='yes']/../ServiceViaPhone[text()='yes']/..

最佳答案

这是一个非常基本的 XPath 功能:使用逻辑运算符 and 组合多个条件。 , or ,以及函数not() .

and 的优先级高于 or,并且两个运算符的优先级均低于 relationalequality运算符(=!=>>=<<=)。

因此,可以安全地编写:A = B 且 C = D

一些最常见的错误:

  1. 人们会写AND和/或OR请记住,XPath 区分大小写

  2. 人们使用|(联合)运算符而不是

最后,这是我的解决方案:

/SavingAccounts/SavingAccount
           [ServiceOnLine='yes' or ServiceViaPhone='yes']

关于XPATH 多元素过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/472966/

相关文章:

c# - 如何使用 SelectSingleNode 获取属性值?

xpath - soapui如何通过在xpath表达式中使用本地名称来获取节点列表?

java - 在 Appium 中使用 Xpath 查找元素的父元素

python-2.7 - Selenium XPATH 我如何从表第 4 列中的文本在表第 2 列中获取文本

javascript - 评估 Chrome 中的 xpath 表达式

python - 使用列表选择具有多个条件的 Dataframe 记录

mysql - 通过 VB.net 中的多个条件的一个查询在 MySQL 中进行多次更新

matlab - 特定元组的生成和计数(matlab)

arrays - 具有动态多个条件的 SUMIF/SUMIFS 的 Excel 总和

vba - 我使用 OR 在 VBA 上形成多个条件 IF ELSE 语句,它不起作用