2

使用HTML Agility Pack,如何从 HTML 块中删除所有 HTML 属性、元素等,结果就像我将其粘贴到记事本中一样?

此外,我需要删除所有格式,但我需要保留 UL/LI 和 B 标签。

4

1 回答 1

4

将 html 输入到一个 HtmlDocument 实例中,可以得到 DocumentNode 属性返回的 HtmlNode,并从那里得到文档节点的 InnerText 属性。它将为您提供去除 HTML 标记的所有文本。

如果您只想在过滤中包含特定的节点子集,那么这将更加困难。

首先,您将内容加载到 HtmlDocument 实例中并获取 DocumentNode 属性返回的 HtmlNode 实例(我将在本文档中将此节点称为根节点)。

同时,您还将创建第二个 HtmlDocument 实例,该实例将包含您正在创建的新文档。

在第一个文档中,您将递归地遍历根节点(注意,它不一定是实际的递归方法,但在语义上它将是递归行为),分析节点及其所有子节点。

如果节点本身是您认可的节点之一,那么您将开始构建该节点的新实例。

但是,如果不是,您仍然会处理元素的子节点,获取文本节点内容(因为文本本身就是一个节点)并将其附加到堆栈上的任何当前节点(如果有的话)。

于 2010-02-28T18:09:31.943 回答