2012-01-16 89 views
2

我想解析下面的HTML。我需要獲得值爲「標題」的h4標籤下所有鏈接的內部文本。使用HTMLAgilityPack和XPath獲取childNodes的問題

<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); 
} 

回答

1

據我所知,我認爲它不工作,因爲你正在使用的XPath是期待一個節點是你H4節點的孩子,我VE不進行了測試,可能會丟失解釋您的要求,但...

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

這將讓所有在該節點H4的第一個兄弟找到了一個節點。因此,在您的示例HTML中,它應該獲得ul節點內的所有節點

希望這有助於