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

时间:2010-10-11 23:59:37

标签: c# html html-agility-pack

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

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

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

提前致谢。

1 个答案:

答案 0 :(得分:1)

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

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

快速又脏,但应该有用。

请注意,正如drachenstern所提到的,嵌套的H1-Tags将导致父节点无法被解析。