我可以使用 Html Agility Pack 来解析 HTML 片段吗?
-
22-09-2019 - |
题
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> 标记的代码片段,并且如果代码发生更改,则会中断。
不隶属于 StackOverflow