質問

グループデータのC#では、HTMLファイルを解析し、その上のすべてのデータを取得しました。

Enter Enter Image説明

選択したそれらの線は親で、以下の子を含み、私が取り組んでいるコードはここにあります:

var uricontent = File.ReadAllText("TestHtml/Bew.html");
            var doc = new HtmlDocument(); // with HTML Agility pack
            doc.LoadHtml(uricontent);

            var rooms = doc.DocumentNode.SelectNodes("//table[@class='rates']").SelectMany(
                detail =>
                {

                    return doc.DocumentNode.SelectNodes("//td[@class='rate-description'] | //table[@class='rooms']//h2 | //table[@class='rooms']//td[@class='room-price room-price-total']").Select(
                        r => new
                        {
                            RoomType = r.InnerText.CleanInnerText(),
                        });
                }).ToArray();
.

html agilitypackによって解析されたデータを含み、あなたはPay&Saveのような名前でそれらをグループ化することができます。

HTMLファイルはここにあります。 http://tepad.cc/share/g0zh0tcyag

ありがとう

役に立ちましたか?

解決

3 XPathクエリの合体を実行する代わりに、それらを「Rate Description」(AKA by Element:<td class="rate-description">)で再度グループ化しようとしています。

LINQの選択を「Rate Description」でベース化することができ、次に投影部分で、相対XPathを使用して現在の "Rate Description"の下のすべての部屋タイプと室利率を取得できます。

var rooms = 
    doc.DocumentNode
       .SelectNodes("//table[@class='rates']//tr[@class='rate']")
       .Select(r => new
         {
            RateType = r.SelectSingleNode("./td[@class='rate-description']")
                        .InnerText.CleanInnerText,
            RoomTypes = r.SelectNodes("./following-sibling::tr[@class='rooms'][1]//table[@class='rooms']//h2")
                         .Select(s => new
                         {
                            RoomType = s.InnerText.CleanInnerText,
                            Rate = s.SelectSingleNode(".//parent::td/following-sibling::td[@class='room-price room-price-total'][1]")
                                    .InnerText.CleanInnerText
                         }).ToArray()
         }).ToArray();
.

上記のXPathクエリの先頭の通知期間。これにより、照会が現在のHtmlAgilityPackからの相対的なものであることをHtmlNodeに指示します。結果は次のようになります。

画像の記述がここにあります

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top