GetElementsByTagName in Htmlagilitypack

c# getelementsbytagname html-agility-pack webbrowser-control

Frage

Wie wähle ich ein Element für zB Textbox, wenn ich seine ID nicht kenne?

Wenn ich seine ID kenne, kann ich einfach schreiben:

HtmlAgilityPack.HtmlNode node = doc.GetElementbyId(id);

Aber ich kenne die ID der Textbox nicht und ich kann die Methode GetElementsByTagName in HtmlagilityPack nicht finden, die in der Webbrowsersteuerung verfügbar ist. In der Webbrowser-Kontrolle hätte ich einfach schreiben können:

HtmlAgilityPack.HtmlNode node = doc.GetElementbyId(id);

BEARBEITEN

Hier ist das HTML-Formular, über das ich spreche

HtmlAgilityPack.HtmlNode node = doc.GetElementbyId(id);

Bitte beachten Sie, dass ich die ID des Formulars nicht kenne. Und es kann mehrere Formulare auf derselben Seite geben. Das einzige, was ich weiß, ist "sometext" und ich möchte dieses Element nur mit diesem Namen erhalten. Ich denke, ich werde alle Formen einzeln analysieren müssen und dann diesen Namen als "etwas" finden, aber wie mache ich das?

Akzeptierte Antwort

Wenn Sie nach dem Tag anhand seines tagName suchen (z. B. form für <form name="someForm"> ), können Sie <form name="someForm"> verwenden:

var forms = document.DocumentNode.Descendants("form");

Wenn Sie nach der Eigenschaft name des Tags suchen (z. B. someForm für <form name="someForm"> , können Sie <form name="someForm"> verwenden:

var forms = document.DocumentNode.Descendants("form");

Für die letzte können Sie eine einfache Erweiterungsmethode erstellen:

var forms = document.DocumentNode.Descendants("form");

Hinweis: Sie können SelectNodes und XPath auch verwenden, um Ihr Dokument abzufragen:

var forms = document.DocumentNode.Descendants("form");

Würde Ihnen alle Eingaben auf der Seite geben, die sich in einem Formular-Tag befinden.

var forms = document.DocumentNode.Descendants("form");

Würde Ihnen alle Eingaben des ersten Formulars auf der Seite geben


Beliebte Antwort

Jeder Knoten nach Namen:

doc.DocumentNode.SelectNodes("//*[@name='name']")

Eingabeknoten nach Name:

doc.DocumentNode.SelectNodes("//*[@name='name']")



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