XPath-Platzhalter im Attributwert

c# html-agility-pack xpath

Frage

Ich habe den folgenden XPath, um Attribute der Klassenspanne zu vergleichen:

//span[@class='amount']

Ich möchte alle Elemente zusammenbringen, die das Klassenattribut "Betrag" haben, aber auch andere Klassen haben können. Ich dachte, ich könnte das tun:

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

aber das funktioniert nicht ... wie kann ich das machen?

Akzeptierte Antwort

Verwenden Sie den folgenden Ausdruck:

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

Sie könnten verwenden contains auf seine eigene, aber das wäre auch Klassen wie passen someamount . Testen Sie den obigen Ausdruck an der folgenden Eingabe:

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

Es wählt die ersten vier span Elemente aus, aber nicht das letzte.


Beliebte Antwort

Sie müssen die Methode contains verwenden. Siehe Wie verwende ich XPath contains ()?

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



Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum