Html Agility Pack c#

本文关键字:Pack Agility Html | 更新日期: 2023-09-27 18:09:08

我想从每个产品中提取库存数量(td5),如果库存是空的,系统不会在表中写0。我提取数字的代码是:

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

有了这个,我得到了库存产品,当然,任何人都有一个技巧给我对表进行预处理,用0或其他方法填充td ' s为正确的产品获取正确的数字?

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>

Html Agility Pack c#

如果您想在每行中获得第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;
}