Html Agility Pack c#

时间:2015-08-22 08:20:12

标签: c# html html-agility-pack

我想从每件产品中提取库存(td5)中的商品数量, 如果库存为空,则存在系统在表中写入0的问题。 提取号码的我的代码是:

HtmlNode node = doc.DocumentNode.SelectSingleNode("//tr[1]//td[5]");

有了这个,我当然得到了库存产品,任何1都有我的伎俩 预处理表并用0或其他方式填充td 抓住正确的数字到正确的产品?

HTML:

<tr>
        <td class="data">product1</td>
        <td class="data" width="350">TEST1</td>
        <td class="data">27</td>
        <td class="data">ST</td>
        <td class="data"></td>
        <!-- <td class=data>`LIST-KWERT[j].value`</td> -->
        <td class="data"></td>
        <!-- <td class=data>`LIST-SEINM[j].value`</td> -->
        <!-- <td class=data>`LIST-SSPEM[j].value`</td> -->
    <td class="data"></td>
        <td class="data"></td>
        <td class="data"></td>
        <td class="data">999,9</td>
    </tr>

      <tr>
        <td class="data">product2</td>
        <td class="data" width="350">TEST2</td>
        <td class="data">13</td>
        <td class="data">ST</td>
        <td class="data">21,000</td>
        <!-- <td class=data>`LIST-KWERT[j].value`</td> -->
        <td class="data"></td>
        <!-- <td class=data>`LIST-SEINM[j].value`</td> -->
        <!-- <td class=data>`LIST-SSPEM[j].value`</td> -->
    <td class="data">5,000</td>
        <td class="data">10,000</td>
        <td class="data">243</td>
        <td class="data">35,5</td>
    </tr>

1 个答案:

答案 0 :(得分:0)

如果您想在每行中获得第5个td,请使用以下代码:

var html = new HtmlDocument();
html.LoadHtml(input);
var root = html.DocumentNode;
var list = new List<Data>();
foreach (var node in root.SelectNodes("//tr//td[5]"))
{
    var price = node.InnerText.IsNullOrWhiteSpace() ? "no price" : node.InnerText;
}