HtmlAgilityPack MixedCodeDocument的用途是什么?

时间:2011-08-04 20:43:16

标签: c# asp.net html-agility-pack

我正在使用HtmlAgilityPack的1.4版本,据我所知,MixedCodeDocument和相关的类可以帮助你解析asp.net和ascx文件中的asp.net标记。我发现了MixedCodeDocument类的零文档或示例。从我的尝试来看,似乎MixedCodeDocument将文件的文本分成几个分隔asp.net片段和nonasp.net片段的块。例如,以下代码段:

<asp:Label ID="lbl_xyz" runat="server" Text='<%=Name%>'></asp:Label>
<a href='#'>blah</a>

将被分解为:

// Text fragment 1
<asp:Label ID="lbl_xyz" runat="server" Text="

// Code fragment 1
<%=Name%>

// Text fragment 2 (two lines)
></asp:Label>
<a href='#'>blah</a>

但是没有比这更深入的解析,即a标签没有被解析为具有属性或类似内容的自己的节点。

所以我最好的猜测是,期望使用MixedCodeDocument去除代码片段,以便可以将剩余的文本片段拼凑在一起,然后使用HtmlDocument类进行解析。

有人知道这是否正确?或者甚至更好,有没有人提出使用HAP或其他方法成功解析和操作aspx或ascx文件的方法?

1 个答案:

答案 0 :(得分:1)

你猜是100%正确。

MixedCodeDocument类旨在解析包含两种语言的文本,即经典ASP,ASP.NET等,因此得名: - )

最初,Html Agility Pack用于一个能够处理和转换各种文件的整个树的工具,包括HTML和其他类型的文件。如果您只需要替换其他文件的HTML部分,这个类可以帮助您分割代码和加价和。然后可以通过其他方式解析分离的代码和标记块。

我认为今天没有人使用它。)