XPath包含多个值之一

时间:2012-08-28 04:43:28

标签: xpath filter

我有简单的xpath

 /products/product[contains(categorie,'Kinderwagens')] 

它有效但现在如何过滤多个类别值

/products/product[contains(categorie,'Kinderwagens')]  +  
/products/product[contains(categorie,'Kinderwagens')] 

4 个答案:

答案 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)

有很多方法:

  1. //*[contains(text(), 'Kinderwagens') or contains(text(), 'Kinderwagens')]
  2. //product[contains(text(), 'Kinderwagens') or contains(text(), 'Kinderwagens')]
  3. //products/product[contains(text(), 'Kinderwagens') or contains(text(), 'Kinderwagens')]
  4. //products/product[contains(categorie, 'Kinderwagens') or contains(categorie, 'Kinderwagens')]

注意:| (按位或) 运算符不要使用

答案 3 :(得分:0)

您可以按如下所示传递多个文本

//a[contains(text(),'JB-' | 'ABC')]