我有简单的 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')]