web-dev-qa-db-fra.com

XPath contient l'une des valeurs multiples

J'ai simple xpath

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

Cela fonctionne mais maintenant comment filtrer sur plusieurs valeurs de catégorie

comme

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

Est-ce que ça va marcher?

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

Il y a une question similaire ici

44
Curious

Voulez-vous vraiment contient ()? Très souvent, les gens utilisent contains () pour tester si un nœud contient une valeur alors qu'ils devraient utiliser "=". La différence est que si l'élément de catégorie a la valeur de chaîne 'Kinderwagens', alors categorie = 'wagens' Est faux mais contains(categorie, 'wagens') est vrai.

Si vous vouliez réellement '=', alors dans XPath 2.0, vous pouvez écrire [categorie = ('Kinderwagens', 'Wonderwagens')]. Si vous utilisez toujours XPath 1.0, vous avez besoin de deux comparaisons distinctes avec un "ou".

11
Michael Kay

Vous pouvez passer le texte multiple comme ci-dessous

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