XPath包含多个值之一

Bra*_*ram 31 xpath filter

我有简单的xpath

 /products/product[contains(categorie,'Kinderwagens')] 
Run Code Online (Sandbox Code Playgroud)

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

喜欢

/products/product[contains(categorie,'Kinderwagens')]  +  
/products/product[contains(categorie,'Kinderwagens')] 
Run Code Online (Sandbox Code Playgroud)

Cur*_*ous 44

这会有用吗?

/products/product[contains(categorie,'Kinderwagens') or contains(categorie,'Wonderwagens')]
Run Code Online (Sandbox Code Playgroud)

还有一个类似的问题在这里


Mic*_*Kay 12

你真的想要contains()吗?通常,人们使用contains()来测试节点是否应该在使用"="时包含值.不同之处在于,如果类别元素的字符串值为"Kinderwagens",categorie = 'wagens'则为false,但contains(categorie, 'wagens')为真.

如果你真的打算'=',那么在XPath 2.0中你可以写[categorie = ('Kinderwagens', 'Wonderwagens')].如果您仍在使用XPath 1.0,则需要使用'或'进行两次单独的比较.


Udh*_*iya 8

有很多方法:

  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')]

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