我試圖解析以下HTML。我需要在h4標籤下獲取值為“Title”的所有鏈接的innertext。
<h4>Title</h4>
<ul>
<li>
<a>One</a>
</li>
<li>
<a>Two</a>
</li>
<li>
<a>Three</a>
</li>
</ul>
我可以使用以下代碼獲取h4元素:
var links = document.DocumentNode.SelectNodes("//h4[contains(text(),'Title')]");
嘗試獲取節點時出現問題。我嘗試了以下代碼但沒有效果:
var urls = member.SelectNodes(".//a");
foreach (var url in urls)
{
Console.WriteLine(url.InnerText);
}
從我可以收集到的,我認為它不起作用,因為您正在使用的xpath期望節點是您的h4節點的子節點,我沒有測試過這個,並且可能缺少解釋您的要求但是......
var links = document.DocumentNode.SelectNodes("//h4[contains(text(),'Title')]/following-sibling::*[1]//a");
這將獲得在h4節點的第一個兄弟節點中找到的所有節點。因此,在您的示例HTML中,它應該獲取ul節點中的所有節點
希望這可以幫助