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

例如:

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

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

有帮助吗?

解决方案

如果它的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;

其他提示

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

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

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

即使您确实使用 Mika Kolari 的示例获得了正确的 xpath,这也仅适用于其中带有 <b> 标记的代码片段,并且如果代码发生更改,则会中断。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top