可以使用 Html Agility Pack 来解析 html 字符串片段吗?
如:
var fragment = "<b>Some code </b>";
然后提取所有<b>
标签?到目前为止,我看到的所有示例都像 html 文档一样加载。
可以使用 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> 标记的片段,并且如果代码更改会中断。
当我搜索相同的内容时,出现了这个答案。我不知道自从回答后功能是否发生了变化,但下面的应该会更好。
$string = '<b>Some code </b>'
[HtmlAgilityPack.HtmlNode]::CreateNode($string)