GetElementsByTagName in Htmlagilitypack
Wie wähle ich ein element, z.B. textbox, wenn ich mich nicht an die id?
Wenn ich weiß, seine id dann kann ich einfach schreiben:
HtmlAgilityPack.HtmlNode node = doc.GetElementbyId(id);
Aber ich weiß nicht, textbox ID und ich kann nicht finden, die GetElementsByTagName-Methode in HtmlagilityPack, welches im webbrowser-Steuerelement.
Im web-browser-Steuerung hätte ich einfach geschrieben:
HtmlElementCollection elements = browser[i].Document.GetElementsByTagName("form");
foreach (HtmlElement currentElement in elements)
{
}
BEARBEITEN
Hier ist der HTML-form, von der ich spreche,
<form id="searchform" method="get" action="/test.php">
<input name="sometext" type="text">
</form>
Bitte beachten Sie, ich weiß nicht, die ID des Formulars. Und es können mehrere Formen auf der gleichen Seite. Das einzige, was ich weiß, ist "sometext" und ich möchte, um dieses element mit genau diesem Namen. Also ich denke, ich werde haben, zu analysieren alle Formulare eins nach dem anderen und dann finden Sie diesen Namen "sometext" aber wie mache ich das?
Ich habe bearbeitet Sie meine Frage bitte haben Sie einen Blick.
Siehe stackoverflow.com/a/3120867/68607
InformationsquelleAutor Ali | 2012-04-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie sich für den tag mit seinem tagName (wie
form
für<form name="someForm">
), dann können Sie verwenden:Wenn Sie auf der Suche für den tag, indem Sie seine name-Eigenschaft (wie
someForm
für<form name="someForm">
, dann können Sie verwenden:Für das Letzte, das man erstellen Sie eine einfache extension Methode:
Hinweis: Sie können auch
SelectNodes
- und XPath-Abfragen Ihr Dokument:Geben würde, Sie alle Eingänge auf der Seite, die sind in einem form-tag.
Geben würde, Sie alle Eingänge des ersten Formular auf der Seite
InformationsquelleAutor jessehouwing
Jeder Knoten von name:
Input-Knoten von name:
InformationsquelleAutor Adrian Rosca
Ich denke du suchst so etwas
Ich aktualisierte die Antwort bereits
Keine Notwendigkeit für das n.Attribute überprüft und alle. Es gibt eine Name-Eigenschaft. Sie können
.Where(n => n.Name == TheNameYoureLookingFor);
während ich beschäftigt war, die Antwort, die OP hatte nicht bearbeitet die Frage, und das Attribut unbekannt war.
Nein, ich werde nicht darüber nachdenken, es zu viel für nur ein paar Zeilen html-OP gezeigt hat. Ich habe gerade zeigte den Weg, und glaube nicht zu schreiben, die OP ist voller code.
InformationsquelleAutor L.B