我可以使用 Html Agility Pack 来解析 HTML 片段吗?

发布于 2024-08-26 12:24:34 字数 204 浏览 9 评论 0 原文

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

如:

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

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

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.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

别忘他 2024-09-02 12:24:34

如果是 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;

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;
私藏温柔 2024-09-02 12:24:34

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

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

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

即使您确实使用 Mika Kolari 的示例获得了正确的 xpath,这也仅适用于带有 的片段标签,如果代码更改就会中断。

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:

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.

挖个坑埋了你 2024-09-02 12:24:34

当我搜索同样的东西时,出现了这个答案。我不知道自从回答以来功能是否发生了变化,但下面的应该更好。

$string = '<b>Some code </b>'
[HtmlAgilityPack.HtmlNode]::CreateNode($string)

This answer came up when I searched for the same thing. I don't know if the features have changed since it was answered but this below should be better.

$string = '<b>Some code </b>'
[HtmlAgilityPack.HtmlNode]::CreateNode($string)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文