HTMLAgilityPackとXPathを使用してchildNodesを取得する際の問題

c# html-agility-pack xpath

質問

私は次のHTMLを解析しようとしています。私は値 "タイトル"を持つh4タグの下にすべてのリンクのinnertextを取得する必要があります。

<h4>Title</h4>
    <ul>
         <li>
             <a>One</a>
         </li>
         <li>
             <a>Two</a>
         </li>
         <li>
             <a>Three</a>
         </li>
    </ul>

私は次のコードを使用してh4要素のokを得ることができます:

var links = document.DocumentNode.SelectNodes("//h4[contains(text(),'Title')]");

問題は、ノードを手に入れようとするときに起こります。私は次のコードを試したが、何も動作しません:

var urls = member.SelectNodes(".//a");

foreach (var url in urls)
{
    Console.WriteLine(url.InnerText);
}

受け入れられた回答

私が集めることから、あなたが使っているxpathがaノードがあなたのh4ノードの子であることを期待しているので、私はそれが動作していないと思う、私はこれをテストしていないし、

var links = document.DocumentNode.SelectNodes("//h4[contains(text(),'Title')]/following-sibling::*[1]//a");

これは、h4ノードの最初の兄弟にあるすべてのノードを取得します。だからあなたのHTMLの例では、ulノード内のすべてのノードを取得する必要があります

お役に立てれば



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