使用CSQuery解析HTML

blu*_*der 6 html c# asp.net parsing csquery

如何div使用CSQuery通过ID 从标记中检索值?

例如,

<h3>
    <div id='type'>
        Room 1
    </div>
    <div id='price'>
        145
    </div>
</h3>
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我想把内容type和内容price.

hut*_*oid 8

好的,这是你如何使用一个完整的工作示例.

HTML

这包括您无法控制的无效/重复ID html

var html = @"<h3>
            <div id='lib_presta'>
                Chambre standard 1 pers du <span class=''>03/03/2014</span>  au <span class=''>05/03/2014 </span>
            </div>
            <div id='prix_presta'>
                127.76 &euro;
            </div>
        </h3><h3>
            <div id='lib_presta'>
                Chambre standard 2 pers du <span class=''>03/03/2014</span>  au <span class=''>05/03/2014 </span>
            </div>
            <div id='prix_presta'>
                227.76 &euro;
            </div>
        </h3>";
Run Code Online (Sandbox Code Playgroud)

C#代码

这会将dom元素的id加载到两个描述和价格列表中.然后,它HotelAvailability使用两个集合的键值作为HotelNamePrice属性将它们投影到对象列表中.

        CQ dom = html;

        var libs = dom["#lib_presta"];
        var prixs = dom["#prix_presta"];

        var list = libs.Zip(prixs, (k, v) => new { k, v })
          .Select(h => new HotelAvailablity { HotelName = h.k.InnerText.Trim(), Price = h.v.InnerText.Trim() });
Run Code Online (Sandbox Code Playgroud)

屏幕抓取

在控制台应用程序中运行以上测试.