我正在關注一個RSS源,它返回一個XML。 XML內部是HTML表格,作爲一個長字符串返回。我試圖用C#訪問這個HTML表格的元素,以便我可以將這些元素中的每一個用作另一個程序的變量。一個表格的例子:XML與HTML表格解析C#
<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
的HTML敏捷性包最好來自未知源的用於HTML和可能不結構良好。看到你有XML並且嵌入式HTML表格也很好地形成了XML,就像你一樣使用'XmlDocument'(或者如果可以的話''也許''XDocument')。 – Oded
Oded,謝謝你的回覆。我實際上嘗試過,但是在幾次失敗的嘗試之後,大量的搜索將我帶到了Agility Pack。也就是說,如果你可以用XmlDocument指向一個例子,因爲我一直無法自己找到一個例子,所以我將不勝感激。 - 謝謝 – user1442073