Analyser les tableaux dans les documents HTML et extraire les TR et les TD. avec HTML Agility Pack

html-agility-pack html-parsing vb.net

Question

J'ai donné un travail pour convertir les anciennes données sous forme de tableau en nouveau format.

Les anciennes données factices sont les suivantes:

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

Le problème est que les nouvelles données doivent être dans ce format:

Du texte 1. - Du texte 2. ....

Résumé de ce qui doit être fait ici:

Trouvez tous les TR dans le tableau. pour chaque TR, trouver le premier TD et concaténer avec le second TD séparé par "-".

J'utilise HTML Agility Pack avec VB.Net.

S'il vous plaît aider.

Merci et salutations.

Réponse populaire

Vous pouvez utiliser Linq et HtmlAgilityPack pour extraire tous les td du nœud de table, obtenir tout le InnerText de ces nœuds et créer un nouveau TR / TD.

// 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)

J'espère que ça aide




Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi