我正在关注一个RSS订阅源,它返回一个XML。在XML中有HTML表格,以一个长字符串的形式返回。我正在尝试使用C#访问这个HTML表格的元素,以便我可以将这些元素用作另一个程序的变量。以下是一个表格示例:
<table cellpadding="5"><tr><td><strong>Date (GMT)</strong></td><td><strong>Event</strong></td><td><strong>Cons.</strong></td><td><strong>Actual</strong></td><td><strong>Previous</strong></td></tr><tr><td>Jun 7 11:00</td><td>Announcement</td><td>6.250 %</td><td>6.310 %</td><td>6.560 %</td></tr></table>
这里有很多关于这个问题的帖子都建议使用HtmlAgilityPack,我正在尝试使用它。目前为止,我已经成功提取了HTML表格并将其声明为字符串变量,但是我似乎无法提取表格元素。以下是我的解决方案,基于几位用户的建议:
XmlDocument xDoc = new XmlDocument();
xDoc.Load("http://rssfeed.com");
string descr = xDoc.SelectSingleNode("rss/channel/item/description").InnerText;
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml("descr");
// A Print statement here (textBox1.Text = descr;) shows that I'm successfully accessing the HTML table
var table = doc.DocumentNode.Descendants("tr")
.Select(n => n.Elements("td").Select(o => o.InnerText).ToArray());
foreach (var tr in table)
{
textBox1.Text = String.Format("{0} {1} {2}", tr[0], tr[1], tr[2]);
}
非常欢迎任何建议。
谢谢, D
XmlDocument
(或者如果可以的话,使用XDocument
)即可。 - Oded