2 votes

Xpath Existe-t-il un moyen moins verbeux de filtrer avec plusieurs conditions 'contenir'?

et (contains(BusinessType,'Restaurant') or contains(BusinessType,'Pub') or contains(BusinessType,'Takeaway') )

Le code ci-dessus fonctionne comme prévu en renvoyant les cas contenant les mots spécifiés, mais existe-t-il un code moins verbeux / plus efficace?

Quelque chose comme ça, mais qui fonctionne réellement?

et (contains(BusinessType,'Restaurant|Pub|Takeaway'))

3voto

Mads Hansen Points 24537

matches() prend une expression régulière et fera ce que vous voulez:

matches(BusinessType,'Restaurant|Pub|Takeaway')

1voto

kjhughes Points 5581

Si vous voulez vraiment effectuer un test de contenu de sous-chaîne par rapport à un ensemble de sous-chaînes possibles (c'est-à-dire que BusinessType doit correspondre non seulement à 'Restaurant' mais aussi à 'Fine Dining Restaurant' et à 'Non-Restaurants'), consultez la réponse de Mads (+1).

Si vous voulez en fait effectuer un test d'égalité de chaîne par rapport à un ensemble de valeurs possibles, mettez à jour l'expression régulière comme suit,

matches(BusinessType, '^(Restaurant|Pub|Takeaway)$')

ou utilisez plutôt cette forme plus propre:

BusinessType = ('Restaurant', 'Pub', 'Takeaway')

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X