2013-10-24 61 views
-1

我正在使用HTMLAgility包來解析html,然後使用xpath檢索具有特定類的表列。使用HTMLAgility包檢索元素的值

HtmlAgilityPack.HtmlWeb web = new HtmlWeb(); 
HtmlAgilityPack.HtmlDocument doc = web.Load("www.url.com"); 

foreach (HtmlNode row in doc.DocumentNode.SelectNodes("(//td[@class='titleColumn'])[2]")) 
{ 
    Response.Write(row.InnerHtml + "<br />"); 
} 

我檢索數據和row.Innerhtml看起來像這樣。

<a>Title</a> <span>Year</span><br /> 

我想將a和span元素的值保存在單獨的字符串變量中。請幫助

+0

'row.InnerText' .....? – Arran

+0

@Aran Thats給出字符串「標題年」。我想將兩個單獨的字符串變量保存起來 –

+0

那麼,告訴我們HTML的樣子。我們不知道你試圖違背什麼。 – Arran

回答

2

您的xpath表達式選擇第二個<td>,其類別爲titleColumn。根據節點的內部html,這個<td> hode有兩個子節點:<a><span>。因此,您可以輕鬆找到這些節點,然後將內部文本(或內部html)放入您的變量string中。看,這:

foreach (var row in doc.DocumentNode.SelectNodes("(//td[@class='titleColumn'])[2]")) 
{ 
    var a = row.SelectSingleNode("a"); 
    var span = row.SelectSingleNode("span"); 

    Console.WriteLine(a.InnerText); 
    Console.WriteLine(span.InnerText); 
} 

將輸出:

Title 
Year