xpath - 如何将查询优先级与查询联合起来

时间:2017-03-08 16:43:25

标签: xpath union multiple-conditions

我想将3个查询与union运算符结合起来" |"工作正常, 但我想为每个查询设置优先级,例如,如果第一个查询将带来结果,那么它需要是node [0]

示例:// div [@class =' class1'] | // div [@class =' class2'] | // DIV [@class =' CLASS3']

所以如果字符串有超过1个查询匹配,那么它需要遵循一些优先级,或者更好的是不会在其他查询上带来任何结果,如果之前有一些匹配 请帮忙 谢谢

2 个答案:

答案 0 :(得分:0)

如果您只想在结果中使用一个节点,那么通常的方法(假设XPath 2.0或更高版本)是:

(//div[@class='class1'], //div[@class='class2'], //div[@class='class3'])[1]

如果可能有多个@ class ='class1'的节点,并且你想要所有节点,并且你只想要@ class ='class2'的节点,如果没有@ class ='class1',那么它是有点困难。但在我们继续之前,您需要告诉我们您正在使用哪个版本的XPath。

答案 1 :(得分:0)

//div[@class='class1'] | //body[not(div[@class='class1'])]/div[@class='class2'] | //body[not(div[@class='class1'] and not(div[@class='class2']))]/div[@class='class3']

如果class1存在,则第二个和第三个xpath将不会产生任何结果,如果存在第2个,那么第三个xpath将不会产生任何结果..

这个想法,但你必须进一步努力......要有创造力,我的男人。