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