So wählen Sie mithilfe von HTML Agility Pack eine bestimmte Tabellenzelle aus

html-agility-pack vb.net xpath

Frage

Ich muss bestimmte Felder aus Zellen in einer HTML-Tabelle herausziehen. Mit Firebug konnte ich den genauen XPath zu den Zellen bringen, die ich brauche (leider haben die Zellen kein ID-Tag). Ich dachte, ich könnte DocumentNode.SelectSingleNode verwenden und diesen Pfad übergeben, aber es scheint nicht richtig zu funktionieren. Was mache ich falsch? Oder gibt es einen besseren Ansatz dafür als wie ich es mache? Leider habe ich keine Erfahrung mit XPath, deshalb wird es härter, als ich es erwartet hatte. Hier ist, was ich bisher habe (ich weiß, dass der HTML-Code besonders unordentlich ist, aber das kann ich nicht ändern):

Dim page As New HtmlAgilityPack.HtmlDocument
Dim node As HtmlAgilityPack.HtmlNode
page.LoadHtml(fileContents)
node = page.DocumentNode.SelectSingleNode("/html/body/form/div[6]/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr/td[2]")

Sehr geschätzt.

Akzeptierte Antwort

Firebug vielleicht repariert defekte HTML-Tags. Wenn Sie einen HTML-Knoten auswählen möchten, sollten Sie die Klasse oder ID verwenden. Beispielsweise:

//div[@class='content']//table//tr[1]/td[2]

kürzen Sie den Pfad und verwenden Sie den Klassen- oder ID-Selektor.

Wenn die Tabelle eine eigene ID hat, können Sie Folgendes verwenden:

//table[@id='tableid']/tr[1]/td[2]

Probieren Sie es aus, Sie werden feststellen, dass XPATH interessant ist.



Related

Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow