Для чего предназначен HtmlAgilityPack MixedCodeDocument? - PullRequest
4 голосов
/ 05 августа 2011

Я использую HtmlAgilityPack версии 1.4, и, насколько я понимаю, MixedCodeDocument и связанные с ним классы существуют для того, чтобы помочь вам разобрать разметку asp.net, как в файлах aspx и ascx. Я нашел нулевую документацию или примеры для класса MixedCodeDocument. Из того, что я пробовал, кажется, что MixedCodeDocument разбивает текст файла на куски, отделяющие фрагменты asp.net от фрагментов non-asp.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>

Но нет более глубокого анализа, т. Е. Тег не анализируется в своем собственном узле с атрибутами или чем-то подобным.

Таким образом, я думаю, что MixedCodeDocument будет использоваться для вырезания фрагментов кода, чтобы оставшиеся фрагменты текста можно было соединить вместе, а затем проанализировать с помощью класса HtmlDocument.

Кто-нибудь знает, правильно ли это? Или, что еще лучше, есть ли у кого-нибудь советы о том, как успешно анализировать и манипулировать файлами aspx или ascx с помощью HAP или других файлов?

1 Ответ

1 голос
/ 08 августа 2011

Вы предполагаете, что это на 100% правильно.

Класс MixedCodeDocument предназначен для анализа текста, содержащего два языка: классический ASP, ASP.NET и т. Д. Отсюда и название: -)

Изначально Html Agility Pack использовался в инструменте, который способен обрабатывать и преобразовывать целое дерево различных файлов, включая HTML и другие типы файлов. Если вам нужно заменить только части HTML для других файлов, этот класс помог вам разделить код и разметку и. Разделенный код и блоки разметки могут быть затем проанализированы другими способами.

Я не думаю, что сегодня кто-нибудь использует это:)

...