【问题标题】:html agilitypack get data out of a tablehtmlagilitypack 从表中获取数据
【发布时间】:2013-08-28 14:51:28
【问题描述】:

我想做的是从这个表中取出数据:

<div class="fliptable">
<div class="head">
    <div class="outer">
        <div class="inner">
            Information</div>
    </div>
</div>
<table class="body">
    <tbody>
        <tr>
            <td class="key" style="">
                SKU
            </td>
            <td class="right">
                SKU1<br>
                SKU2<br>
                SKU3<br>
            </td>
        </tr>
        <tr>
            <td class="key" style="">
                EAN
            </td>
            <td class="right" style="">
                EAN1<br>
                EAN2<br>
                EAN3<br>
            </td>
        </tr>
    </tbody>
</table>

我目前的代码:

 Dim doc As New HtmlAgilityPack.HtmlDocument()
    doc.Load(WebBrowser1.DocumentStream)

    Try

        Dim key = doc.DocumentNode.SelectSingleNode("//div[@class='fliptable']//table[@class='body']//tr//td[@class='key']")
        RichTextBox1.AppendText(key.InnerText & vbNewLine)

        Dim right As HtmlNode = doc.DocumentNode.SelectSingleNode("//div[@class='fliptable']//table[@class='body']//tr//td[@class='right']")
        For Each p As HtmlNode In right.SelectNodes("//div[@class='fliptable']//table[@class='body']//tr//td[@class='right']//br")
            RichTextBox1.AppendText(p.PreviousSibling.InnerText.Trim() & vbNewLine)
        Next


    Catch ex As Exception

    End Try

我得到的结果是:

SKU
SKU1
SKU2
SKU3
EAN1
EAN2
EAN3

我想要什么:

SKU
SKU1
SKU2
SKU3
EAN
EAN1
EAN2
EAN3

但我的生命无法让它发挥作用

【问题讨论】:

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


    【解决方案1】:

    这行得通:

    Dim bodyTable = (From tbl In doc.DocumentNode.Descendants("table")
                    Where tbl.Attributes.Contains("class") AndAlso tbl.Attributes("class").Value = "body").FirstOrDefault
    If bodyTable IsNot Nothing Then
        Dim allTd = bodyTable.SelectNodes("//td")
        For Each td In allTd
            For Each token In td.InnerText.Split(New String() {}, StringSplitOptions.RemoveEmptyEntries)
                RichTextBox1.AppendText(token.Trim & Environment.NewLine)
            Next
        Next
    End If
    

    【讨论】:

      猜你喜欢
      • 2023-03-19
      • 2011-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多