HTMLAgilityPack和分離<br/>

html-agility-pack

我有一些HTML,這是由分離<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的信息,請參閱此處)

但是,您在Html Agility Pack中找到的XPATH over 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());
}

這將輸出

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

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



許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因