我正在使用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文件的方法?
答案 0 :(得分:1)
你猜是100%正确。
MixedCodeDocument
类旨在解析包含两种语言的文本,即经典ASP,ASP.NET等,因此得名: - )
最初,Html Agility Pack用于一个能够处理和转换各种文件的整个树的工具,包括HTML和其他类型的文件。如果您只需要替换其他文件的HTML部分,这个类可以帮助您分割代码和加价和。然后可以通过其他方式解析分离的代码和标记块。
我认为今天没有人使用它。)