XPath - Wie wählt man einen Knoten mit nur einer Klasse?

.net c# html-agility-pack xml xpath

Frage

Für xpath auf c #, wie kann ich einen Knoten nach Klasse auswählen, wo der Knoten nur diese 1 Klasse hat?

Zum Beispiel, wenn ich das hatte:

<span class="red blue"></span>
<span class="red"></span>

Der xpath-Ausdruck "red" gibt nur den zweiten Knoten zurück.

Vielen Dank.

Beliebte Antwort

Wenn Sie alle span Elemente auswählen möchten, die eine @class enthalten, die red enthält, und Sie sicher sind, dass die Zeichenfolge red anderer Stelle in der @class nicht @class verwenden Sie diese in XPATH 1.0:

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

Wenn Rot in einer anderen Klasse (wie etwa in der centered ) auftreten kann, müssen Sie komplexer werden

//span[contains(concat(' ', normalize-space(@class), ' '), ' red ')]

Wenn Sie XPATH 2.0 verwenden können, können Sie beide Fälle wie folgt berücksichtigen:

//span[tokenize(@class,'\s+')[. eq 'red']]



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