Caractère générique XPath dans la valeur d'attribut

c# html-agility-pack xpath

Question

J'ai le XPath suivant pour correspondre aux attributs de la classe span:

//span[@class='amount']

Je veux faire correspondre tous les éléments qui ont l'attribut de classe "montant" mais peuvent également avoir d'autres classes. Je pensais pouvoir faire ceci:

//span[@class='*amount*'] 

mais ça ne marche pas ... comment puis-je faire ça?

Réponse acceptée

Utilisez l'expression suivante:

//span[contains(concat(' ', @class, ' '), ' amount ')]

Vous pouvez utiliser contains someamount seuls, mais cela correspondrait également à des classes telles que someamount . Testez l'expression ci-dessus sur l'entrée suivante:

<root>
  <span class="test amount blah"/>
  <span class="amount test"/>
  <span class="test amount"/>
  <span class="amount"/>
  <span class="someamount"/>
</root>

Il sélectionnera les quatre premiers éléments de la span , mais pas le dernier.


Réponse populaire

Vous devez utiliser la méthode contient. Voir Comment utiliser XPath contient () ici?

//span[contains(@class,'amount')]




Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi