1
我有一些HTML,這是由<br/>
例如爲:HTMLAgilityPack和分離<br/>
Jack Janson
<br/>
309 123 456
<br/>
My Special Street 43
什麼是檢索在3列中的信息最簡單的方法分離?
我不是XPath專家,所以另一種方法是將行分隔符上的字符串分開,並且只使用數組。有沒有更聰明的方法來做到這一點?
更新:忘了格式化代碼。
我有一些HTML,這是由<br/>
例如爲:HTMLAgilityPack和分離<br/>
Jack Janson
<br/>
309 123 456
<br/>
My Special Street 43
什麼是檢索在3列中的信息最簡單的方法分離?
我不是XPath專家,所以另一種方法是將行分隔符上的字符串分開,並且只使用數組。有沒有更聰明的方法來做到這一點?
更新:忘了格式化代碼。
在基於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
請張貼的HTML的一個例子。 – 2011-05-23 20:46:30