如何通过查询优先级查询工会查询



我想将3个查询与联合操作员" |"相结合。正常工作,但是我想根据每个查询设置优先级,例如,如果第一个查询会带来结果,则需要node [0]

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

因此,如果字符串具有1个以上的查询匹配,则需要遵循一些优先级,甚至更好,如果以前有一些匹配项,请不要在其他查询中带来任何结果请帮忙谢谢

如果您只想在结果中一个节点,则通常的方法(假设XPath 2.0或更高)为:

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

如果 @class ='class1'可能有几个节点,并且您想要所有节点,并且您只需要 @class ='class2'的节点,如果没有 @class ='class1',那就是有点困难。但是在我们进一步之前,您需要告诉我们您正在使用的XPath版本。

//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类,则第三X Path将一无所有。

这就是这个想法,但是您必须进一步努力...我的男人发挥创意。

最新更新