HTMLAgilityPack and HTML Page
本文关键字:Page HTML and HTMLAgilityPack | 更新日期: 2023-09-27 18:01:25
我有这个HTML页面:http://pastebin.com/ewN5NZis
我想尝试使用htmllagilitypack来获得这个结果:
列表1:Title1, Title2清单2:约翰,安东尼清单3:29/04/14、28/04/14
我想把数据存储在三个不同的。
我正在尝试:
HtmlAgilityPack.HtmlDocument htmlDoc = new HtmlAgilityPack.HtmlDocument();
htmlDoc.OptionFixNestedTags = true;
htmlDoc.LoadHtml(html);
foreach (HtmlNode node in htmlDoc.DocumentNode.SelectNodes("//tr"))
{
res += node.InnerHtml;
}
在res变量我存储文档的所有标签是对的吗?现在我需要做什么才能得到3个列表呢?
谢谢. .
不建议使用所有的原始文本,因为你必须拆分它,这是自杀。
试试这个(取每个<td>
与其特定的类,取InnerText
而不是InnerHTML
):
List<string> topicList = new List<string>;
List<string> authorList = new List<string>;
List<string> lastPostList = new List<string>;
foreach (HtmlNode node in htmlDoc.DocumentNode.SelectNodes("//td[@class='topic starter']"))
{
string topic;
topic = node.InnerText;
topicList.Add(topic);
}
foreach (HtmlNode node in htmlDoc.DocumentNode.SelectNodes("//td[@class='author']"))
{
string author;
author = node.InnerText;
authorList.Add(author);
}
foreach (HtmlNode node in htmlDoc.DocumentNode.SelectNodes("//td[@class='lastpost']"))
{
string lastpost;
lastpost = node.InnerText;
lastPostList.Add(lastpost); // This will take also the author that posted last post (e.g. Antony 24/10/09).
}
如果您需要分隔文本:最后发布的作者和日期,您可以使用.split()
属性字符串