在HTML文檔中解析表並提取TR和TD。使用HTML Agility Pack

html-agility-pack html-parsing vb.net

我已經完成了將表格格式的舊數據轉換為新格式的工作。

舊的虛擬數據如下:

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

問題是新數據需要採用以下格式:

一些文字1. - 一些文字2. ....

這裡需要做的總結:

找到表中的所有TR。對於每個TR,找到第一個TD並與第二個TD連接,用“ - ”分隔。

我正在使用HTML Agility Pack和VB.Net。

請幫忙。

感謝致敬。

熱門答案

您可以使用Linq和HtmlAgilityPack從表節點獲取所有td,獲取此節點的所有InnerText並創建新的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)

我希望它有所幫助




許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因