我有简单的 xpath
/products/product[contains(categorie,'Kinderwagens')]
它有效,但现在我如何过滤多个类别值
像
/products/product[contains(categorie,'Kinderwagens')] +
/products/product[contains(categorie,'Kinderwagens')]
这行得通吗?
/products/product[contains(categorie,'Kinderwagens') or contains(categorie,'Wonderwagens')]
这里有一个类似的问题
你真的想要包含()吗?很多时候,人们在应该使用“=”时使用 contains() 来测试节点是否包含值。不同之处在于,如果类别元素具有字符串值“Kinderwagens”,categorie = 'wagens'
则为假但contains(categorie, 'wagens')
为真。
如果您实际上打算使用 '=',那么在 XPath 2.0 中您可以编写[categorie = ('Kinderwagens', 'Wonderwagens')]
. 如果您仍在使用 XPath 1.0,则需要使用“或”进行两次单独比较。
有很多方法:
//*[contains(text(), 'Kinderwagens') or contains(text(), 'Kinderwagens')]
//product[contains(text(), 'Kinderwagens') or contains(text(), 'Kinderwagens')]
//products/product[contains(text(), 'Kinderwagens') or contains(text(), 'Kinderwagens')]
//products/product[contains(categorie, 'Kinderwagens') or contains(categorie, 'Kinderwagens')]
注:| (按位或)运算符不要使用
您可以传递多个文本,如下所示
//a[contains(text(),'JB-' | 'ABC')]