2011-05-23 26 views
1

我有一些HTML,這是由<br/>例如爲:HTMLAgilityPack和分離<br/>

Jack Janson 
<br/> 
309 123 456 
<br/> 
My Special Street 43 

什麼是檢索在3列中的信息最簡單的方法分離?

我不是XPath專家,所以另一種方法是將行分隔符上的字符串分開,並且只使用數組。有沒有更聰明的方法來做到這一點?

更新:忘了格式化代碼。

+0

請張貼的HTML的一個例子。 – 2011-05-23 20:46:30

回答

3

在基於XML的純XPATH,你會使用XPath表達式是這樣的://preceding-sibling::br//following-sibling::br(見這裏尋求幫助的XPATH Axes

但是,在XPATH在HTML實現,你會以HTML敏捷性包找到在XPATH選擇表達式中不支持純文本節點或(屬性節點)(例如,//br/text()//br/@blah不起作用)。注意它適用於過濾器,因此,這些//br[text()='blah']//br[@att='blah']工作。

所以,回到這個問題,你需要XPATH和代碼,像這樣結合:

HtmlDocument doc = new HtmlDocument(); 
doc.Load(myHtmlFile); 

foreach (HtmlNode p in doc.DocumentNode.SelectNodes("//br")) 
{ 
    Console.WriteLine(p.PreviousSibling.InnerText.Trim()); 
} 

這將輸出

Jack Janson 
309 123 456