Can I use Html Agility Pack To Parse HTML Fragment?

大城市里の小女人 提交于 2019-12-01 01:29:49

问题


Can Html Agility Pack be used to parse an html string fragment?

Such As:

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

Then extract all <b> tags? All the examples I seen so far have been loading like html documents.


回答1:


If it's html then yes.

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;



回答2:


I dont think this is really the best use of HtmlAgilityPack.

Normally I see people trying to parse large amounts of html using regular expressions and I point them towards HtmlAgilityPack but in this case I think it would be better to use a regex.

Roy Osherove has a blog post describing how you can strip out all the html from a snippet:

  • http://weblogs.asp.net/rosherove/archive/2003/05/13/6963.aspx

Even if you did get the correct xpath with Mika Kolari's sample this would only work for a snippet with a <b> tag in it and would break if the code changed.



来源:https://stackoverflow.com/questions/2535878/can-i-use-html-agility-pack-to-parse-html-fragment

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!