Analysieren Sie Tabellen in HTML-Dokumenten und extrahieren Sie TRs und TDs. mit HTML-Agilitätspaket

html-agility-pack html-parsing vb.net

Frage

Ich habe einen Auftrag gegeben, um alte Daten im Tabellenformat in ein neues Format zu konvertieren.

Alte Dummy-Daten lauten wie folgt:

<table>
<tr>
<td>Some text 1.</td>
<td>Some text 2.</td>
</tr>
..... //any number of TRs goes here
</table>

Das Problem besteht darin, dass die neuen Daten in diesem Format vorliegen müssen:

Etwas Text 1. - Etwas Text 2. ....

Zusammenfassung was hier zu tun ist:

Finde alle TRs in der Tabelle. Finde für jedes TR zuerst TD und verkette es mit dem zweiten TD, getrennt durch "-".

Ich verwende HTML Agility Pack mit VB.Net.

Bitte Hilfe.

Danke und Grüße.

Beliebte Antwort

Sie können Linq und HtmlAgilityPack verwenden, um alle tds vom Tabellenknoten abzurufen, den gesamten InnerText dieser Knoten abzurufen und ein neues TR / TD zu erstellen.

// tableNode is the <table> HtmlNode. If you know where is this table you can use XPath to find him.

Dim sb As New StringBuilder()
For Each childNode As HtmlNode In tableNode.DescendantNodes().Where(Function(n) n.Name = "td")
    sb.Append(String.Format("{0} - ", childNode.InnerText))
Next

tableNode.RemoveAllChildren()

Dim newTrNode As HtmlNode = tableNode.OwnerDocument.CreateElement("tr")
Dim newTdNode As HtmlNode = tableNode.OwnerDocument.CreateElement("td")

newTdNode.InnerHtml = sb.ToString()
newTrNode.AppendChild(newTdNode)

tableNode.AppendChild(newTrNode)

Ich hoffe, es hilft



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