当前位置:  开发笔记 > Android > 正文

XPATH多元素过滤器

如何解决《XPATH多元素过滤器》经验,为你挑选了2个好方法。

我有以下示例XML结构:


    
       yes
       no
    
    
       no
       yes
    

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

XPATH应该给我两行!! 我可以过滤'SavingAccount'节点,其中两个元素值都是,如下面的XPATH示例,但我想要做的是一个或元素值比较???

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

Dimitre Nova.. 54

这是一个非常基本的XPath功能:撰写一些条件与逻辑运算符and,or和函数not().

and具有更高的优先级比or和运营商都具有比低优先级的关系平等运算符(=,!=,>,>=,<<=).

所以,写它是安全的:A = B and C = D

一些最常见的错误:

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

    人们使用|(union)运算符代替or

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

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



1> Dimitre Nova..:

这是一个非常基本的XPath功能:撰写一些条件与逻辑运算符and,or和函数not().

and具有更高的优先级比or和运营商都具有比低优先级的关系平等运算符(=,!=,>,>=,<<=).

所以,写它是安全的:A = B and C = D

一些最常见的错误:

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

    人们使用|(union)运算符代替or

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

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



2> AnthonyWJone..:
/SavingAccounts/SavingAccount[(ServiceOnLine='yes') or (ServiceViaPhone='yes')]


@DimitreNovatchev,当你必须区分(和[,然后使用术语括号来指代两者)会产生误导/混淆.
@DimitreNovatchev,大多数母语为英语的人并不认为"括号"和"括号"是同义词.我绝对不会把括号括起来.和其他人一样,我对你的初步评论感到困惑,特别是因为没有限定符的"括号"通常被理解为方括号.
推荐阅读
无名有名我无名_593
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有