【问题标题】:c# htmlAgilityPack read from id block until another id blockc# htmlAgilityPack 从 id 块读取直到另一个 id 块
【发布时间】:2020-06-21 01:41:06
【问题描述】:

我有一个这样的html文档

   <tr  id="__TOC_1">

                                <div id="AUTOGENBOOKMARK_3_7899df20-f104-434d-a5e4-fa293412f5db">
                                    <div style="visibility:hidden">&nbsp;</div>
                                </div>
                                <div>District name</div>
                                <div>July&nbsp;&nbsp;&nbsp;&nbsp; 2019</div>
                                <div>Something</div>
                                <div>Something</div>
                                <div>Address</div>
                                <div>
                                    <div style="visibility:hidden">&nbsp;</div>
                                </div>
                                <div>
                                    <div style="visibility:hidden">&nbsp;</div>
                                </div>
                        </tr>

<tr>
                            <td class="style_6" >
                                <div class="style_7" id="AUTOGENBOOKMARK_4_d4d6">Apartment number.</div>
                            </td>
                            <td class="style_6" s>
                                <div class="style_7" id="AUTOGENBOOKMARK_5_87b456a7" >Personal account</div>
                            </td>
                            <td class="style_6">
                                <div class="style_7" id="AUTOGENBOOKMARK_6_2b05c0c6>Accrued</div>
                            </td>
                            <td class="style_6" >
                                <div class="style_7" id="AUTOGENBOOKMARK_7_f66f8084>Received</div>
                            </td>
                        </tr>
<tr>
                            <td class="style_6">
                                <div>195</div>
                            </td>
                            <td class="style_6">
                                <div>00060631402</div>
                            </td>
                            <td class="style_6">
                                <div>155.63</div>
                            </td>
                            <td class="style_6">
                                <div">155.63</div>
                            </td>

    <tr>
                            <td class="style_6">
                                <div>Total</div>
                            </td>
                            <td class="style_6">
                                <div>30</div>
                            </td>
                            <td class="style_6">
                                <div>0.00</div>
                            </td>
                            <td class="style_6">
                                <div>271.04</div>
                            </td>
                        </tr>

这段代码使用 __TOC_2...__TOC_3.. 和下一个重复 n 次

我需要获取地区名称、月份日期,跳过下一个区块并获取所有信息,直到总计

我想把它写到我的对象中

 public class PaymentInfo
{
    public string District { get; set; }

    public string PaymentDate { get; set; }

    public string Address { get; set; }
}

 public class Payment
{
    public string ApartmentNumber { get; set; }

    public int PersonalAccount { get; set; }

    public decimal Accrued { get; set; }

    public decimal Received { get; set; }
}

我认为我需要读取表单第一个 id 块直到另一个,但我不明白如何停止和过滤信息

【问题讨论】:

    标签: c# html html-agility-pack


    【解决方案1】:

    您通过 xpath starts-with 获取这些节点

    //tr[starts-with(@id,'__TOC')]
    

    然后对这些结果执行 foreach 以使用硬代码处理每个块:

    • div数组顺序获取区名、地址、...
    • div id AUTOGENBOOKMARK_4, AUTOGENBOOKMARK_5 获取公寓,号码,...

    【讨论】:

      猜你喜欢
      • 2013-10-26
      • 2020-03-20
      • 2016-08-28
      • 1970-01-01
      • 1970-01-01
      • 2020-06-22
      • 1970-01-01
      • 1970-01-01
      • 2013-04-19
      相关资源
      最近更新 更多