Книга: Технологии интеграции "1С:Предприятия 8.3""
Назад: Разобрать HTML
Дальше: Изменить содержимое HTML

Показать структуру HTML

Предположим, нам нужно полностью обойти и показать всю иерархическую структуру узлов HTML-документа.

Для решения этой задачи добавим команду ПоказатьСтруктуруHTML. Обработчик команды заполним следующим образом (листинг 6.101).

Листинг 6.101. Обработчик команды «ПоказатьСтруктуруHTML»

&НаКлиенте

Процедура ПоказатьСтруктуруHTML(Команда)

 

ДокументHTML = ПолучитьДокументHTML(Текст_HTML);

 

Сообщение = Новый СообщениеПользователю();

ТекстСообщения = "";

 

ИтераторДерева = ДокументHTML.СоздатьОбходДерева(ДокументHTML.ЭлементДокумента);

 

Пока ИтераторДерева.СледующийУзел() <> Неопределено Цикл

Узел = ИтераторДерева.ТекущийУзел;

 

ТекстСообщения = ТекстСообщения + "Имя узла: " + Узел.ИмяУзла + Символы.ПС;

Если НЕ ПустаяСтрока(Узел.ЗначениеУзла) Тогда

ТекстСообщения = ТекстСообщения + "Значение узла: " + Узел.ЗначениеУзла + Символы.ПС;

КонецЕсли;

КонецЦикла;

 

Сообщение.Текст = ТекстСообщения;

Сообщение.Сообщить();

 

КонецПроцедуры

В этом обработчике сначала мы получаем объект ДокументHTML с помощью функции ПолучитьДокументHTML(), в которую передаем текст HTML-документа, содержащийся в реквизите Текст_HTML. Эта функция была рассмотрена выше, в листинге 6.98.

Затем методом СоздатьОбходДерева() объекта ДокументHTML мы создаем иерархический итератор типа ОбходДереваDOM для обхода структуры дерева HTML-документа. В качестве стартового узла итератора передаем в этот метод корневой узел HTML-документа (ДокументHTML.ЭлементДокумента).

Методом итератора СледующийУзел() мы перебираем узлы HTML-документа в цикле. Используя свойство итератора ТекущийУзел, на каждом шаге цикла получаем текущий узел, на котором спозиционирован итератор, и выводим имя и значение узла в сообщение пользователю. В теле цикла можно проанализировать тип узла и исходя из этого проводить дальнейшую обработку его значений.

Таким образом, после загрузки HTML-документа из файла (кнопка Прочитать HTML из файла) и нажатия кнопки Показать структуру HTML будет показано следующее окно сообщений пользователю (рис. 6.18).

Рис. 6.18. Элементы структуры дерева HTML-документа

Назад: Разобрать HTML
Дальше: Изменить содержимое HTML