htmlagilityパック内のノードから子ノードにアクセスする方法

c# html-agility-pack

質問

<html>
    <body>
        <div class="main">
            <div class="submain"><h2></h2><p></p><ul></ul>
            </div>
            <div class="submain"><h2></h2><p></p><ul></ul>
            </div>
        </div>
    </body>
</html>

私はHTMLをHtmlDocumentにロードしました。次に、私はsubmainとしてXPathを選択しsubmain 。それから私は各タグ、すなわちh2p別々にアクセスする方法を知らない。

<html>
    <body>
        <div class="main">
            <div class="submain"><h2></h2><p></p><ul></ul>
            </div>
            <div class="submain"><h2></h2><p></p><ul></ul>
            </div>
        </div>
    </body>
</html>

node.InnerTextを使用すると、すべてのテキストが取得され、 InnerHtmlも有用ではありません。別々のタグを選択するには?

受け入れられた回答

以下が役立ちます:

HtmlAgilityPack.HtmlNodeCollection nodes = doc.DocumentNode.SelectNodes("//div[@class=\"submain\"]");
foreach (HtmlAgilityPack.HtmlNode node in nodes) {
    //Do you say you want to access to <h2>, <p> here?
    //You can do:
    HtmlNode h2Node = node.SelectSingleNode("./h2"); //That will get the first <h2> node
    HtmlNode allH2Nodes= node.SelectNodes(".//h2"); //That will search in depth too

    //And you can also take a look at the children, without using XPath (like in a tree):        
    HtmlNode h2Node = node.ChildNodes["h2"];
}

人気のある回答

メモリから、私はそれぞれのことを信じているNode 、自身の持っているChildNodesあなたの内なるよう、コレクションをfor…eachあなたが検査することができるはずブロックnode.ChildNodes




ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ