【问题标题】:Parse Tables in HTML docs and extract TRs and TDs. with HTML Agility Pack解析 HTML 文档中的表格并提取 TR 和 TD。带有 HTML 敏捷包
【发布时间】:2012-04-18 17:31:49
【问题描述】:

我的工作是将表格格式的旧数据转换为新格式。

旧的虚拟数据如下:

<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 连接。

我在 VB.Net 中使用 HTML Agility Pack。

请帮忙。

感谢和问候。

【问题讨论】:

    标签: vb.net html-parsing html-agility-pack


    【解决方案1】:

    你可以使用Linq和HtmlAgilityPack从table节点获取所有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)
    

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 2010-10-13
      • 1970-01-01
      • 1970-01-01
      • 2015-01-22
      • 2010-10-27
      • 1970-01-01
      • 2012-08-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多