47

私は単純なxpathを持っています

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

動作しますが、複数のカテゴリ値をフィルタリングするにはどうすればよいですか

お気に入り

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

4 に答える 4

77

これは機能しますか?

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

ここにも同様の質問があります

于 2012-08-28T05:10:44.917 に答える
17

本当に contains() が必要ですか? 「=」を使用する必要があるときに、ノードに値が含まれているかどうかをテストするために、contains() を使用することがよくあります。違いは、categorie 要素が文字列値 'Kinderwagens' を持っている場合、categorie = 'wagens'false であるcontains(categorie, 'wagens')が true であるということです。

実際に「=」を意図していた場合、XPath 2.0 では と書くことができます[categorie = ('Kinderwagens', 'Wonderwagens')]。まだ XPath 1.0 を使用している場合は、「or」を使用して 2 つの別々の比較が必要です。

于 2012-08-28T08:30:27.597 に答える
3

多くの方法があります:

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

注: | (ビットごとの OR)演算子は使用しないでください

于 2021-07-14T16:14:29.303 に答える
-3

以下のように複数のテキストを渡すことができます

//a[contains(text(),'JB-' | 'ABC')]
于 2019-03-08T06:19:12.377 に答える