如何在 C# 中获取 H1 标签之间的 HTML 文本

发布于 2024-09-27 05:02:59 字数 307 浏览 4 评论 0原文

我需要解析 HTML 文档以提取所有 H1 标签以及它们之间的所有 HTML。我一直在使用 HtmlAgilityPack 来实现这一目标,并取得了一些成功。我可以使用以下方法提取所有 H1 标签:

foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//h1"))

但是如何在每个 H1 标签之后提取所有 HTML,直到我点击下一个标签H1标签?此 HTML 可以包含表格/图像/链接中的任何内容或 HTML 页面上除 H1 标记之外的任何其他内容。

提前致谢。

I need to parse an HTML document to extract all the H1 tags and all HTML between them. I have been playing with HtmlAgilityPack to achieve this with some success. I could extract all H1 tags using:

foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//h1"))

But how do I extract all the HTML after every H1 tag until I hit the next H1 tag? This HTML could include anything from a table/image/link or any other thing on an HTML page but H1 tag.

Thanks in advance.

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

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

发布评论

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

评论(1

樱花落人离去 2024-10-04 05:02:59

可能的解决方案:
获取完整的 HTML 作为字符串,替换 < H1>带有 HTML 不知道的符号(例如 ü,HTML 使用 & uuml;),然后通过该符号将 String 拆分为数组。

现在,您搜索(例如使用 RegEx)具有开始和结束标记的节点并仅解析这些节点。

又快又脏,但应该可以用。

请注意,正如 drachenstern 提到的,嵌套的 H1 标签将导致父节点不被解析。

Possible solution:
Get the complete HTML as String, replace < H1 > with a sign HTML does not know (e.g. ü, HTML uses & uuml;), then split the String by this sign into an array.

Now you search (with RegEx for example) for nodes that have start AND end tags and only parse those.

Quick and dirty, but should work.

Please be aware, that, as drachenstern mentioned, nested H1-Tags will lead to parent-nodes not being parsed.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文