可以使用Html Agility Pack解析html字符串片段吗?
如:
var fragment = "<b>Some code </b>";
然后提取所有<b>
标签?到目前为止我看到的所有示例都像html文档一样加载。
答案 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;的片段。标记在其中,如果代码更改将破坏。