0
HTML代碼來了:使用HTMLAgilityPack提取文本,這是不標記之間和之後的特定節點
<b> CAR </b>
<br></br>
Car is something you can drive.
<br></br>
<br></br>
C#代碼:
HtmlAgilityPack.HtmlDocument doc = new HtmlWeb().Load("http://website.com/x.html");
if (doc != null)
{
HtmlNode link = doc.DocumentNode.SelectSingleNode("//b[contains(text(), 'CAR')]");
webBrowser1.DocumentText = link.InnerText;
webBrowser1.AllowNavigation = true;
webBrowser1.ScriptErrorsSuppressed = true;
webBrowser1.Visible = true;
}
我設法得到: CAR
我需要得到:
汽車
汽車是你可以開車的東西。
有什麼建議嗎? 我嘗試添加下一個節點,但它給了NullReferenceExceptions: 「// b [contains(text(),'CAR')/ br]」和「// b [contains(text(),'CAR') 「
在此先感謝。 PS.I想避免使用正則表達式..
謝謝西蒙。如果描述不包含「car」這個詞,那麼問題就在於此。如果描述了會怎麼樣。 「四輪的事情」。我已經使用/ following :: text()[1]解決了這個問題,所以代碼在節點之後抓取CAR和文本。 HtmlNode link = doc.DocumentNode.SelectSingleNode(「.// b [contains(text(),'CAR')]/following :: text()[1]」); – GiedriusK 2013-05-10 15:00:57