Holen Sie den zweiten Knoten mit derselben Klasse

c# html-agility-pack

Frage

Ich habe Probleme beim Parsen einiger Knoten mit HtmlAgilityPack.

Hier ist das Problem:

Ich habe viele Knoten mit der Klasse "test", aber ich möchte die zweite auswählen.

Wenn ich so etwas mache:

html.DocumentNode.SelectSingleNode ("//font[@class='test' and position()=1]")

Es gibt den Wert zurück, den ich erwartet habe ... aber wenn ich versuche, den zweiten zu bekommen, gibt es null zurück ... aber die Frage ist ... warum?

html.DocumentNode.SelectSingleNode ("//font[@class='test' and position()=2]")

Diese Codezeile bringt mich alle, und ich bin jetzt wirklich verwirrt, denn mit der Verwendung von position () = 1 musste die lib nur die erste zurückgeben, richtig?

html.DocumentNode.SelectNodes ("//font[@class='test' and position()=1]")

Danke Leute!

Akzeptierte Antwort

Der richtige Code wäre

html.DocumentNode.SelectSingleNode ("(//font[@class='test'])[2]")

Der Code wurde verwendet , wählt das erste oder das zweite Testelement innerhalb des übergeordneten Elements, nicht dem ersten oder zweiten Element in die Abfolge aller font der Klasse test .



Related

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