我可以使用Html Agility Pack来解析HTML片段吗?

时间:2010-03-29 05:06:25

标签: c# .net html-agility-pack

可以使用Html Agility Pack解析html字符串片段吗?

如:

var fragment = "<b>Some code </b>";

然后提取所有<b>标签?到目前为止我看到的所有示例都像html文档一样加载。

2 个答案:

答案 0 :(得分:9)

如果是HTML,那么是。

string str = "<b>Some code</b>";
// not sure if needed
string html = string.Format("<html><head></head><body>{0}</body></html>", str);
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(html);

// look xpath tutorials for how to select elements
// select 1st <b> element
HtmlNode bNode = doc.DocumentNode.SelectSingleNode("b[1]");
string boldText = bNode.InnerText;

答案 1 :(得分:2)

我认为这不是HtmlAgilityPack的最佳用法。

通常我看到有人试图使用正则表达式解析大量的html,我将它们指向HtmlAgilityPack,但在这种情况下,我认为使用正则表达式会更好。

Roy Osherove有一篇博文,描述了如何从片段中删除所有html:

即使你确实使用Mika Kolari的样本获得了正确的xpath,这只适用于带有&lt; b&gt;的片段。标记在其中,如果代码更改将破坏。