Предположим, нам нужно разобрать HTML-документ с целью дальнейшей обработки всех элементов документа, содержащих картинки, якоря, формы и т. д.
Для решения этой задачи добавим команду РазобратьHTML. Обработчик команды заполним следующим образом (листинг 6.100).
Листинг 6.100. Обработчик команды «РазобратьHTML»
&НаКлиенте
Процедура РазобратьHTML(Команда)
ДокументHTML = ПолучитьДокументHTML(Текст_HTML);
Сообщение = Новый СообщениеПользователю();
ТекстСообщения = ДокументHTML.ЭлементДокумента.ТекстовоеСодержимое + Символы.ПС;
ТекстСообщения = ТекстСообщения + "Картинки" + Символы.ПС;
Для Каждого Картинка Из ДокументHTML.Картинки Цикл
ТекстСообщения = ТекстСообщения + Картинка.АльтернативныйТекст + Символы.ПС;
ТекстСообщения = ТекстСообщения + Картинка.Источник + Символы.ПС;
КонецЦикла;
ТекстСообщения = ТекстСообщения + "Якоря" + Символы.ПС;
Для Каждого Якорь Из ДокументHTML.Якоря Цикл
ТекстСообщения = ТекстСообщения + Якорь.ТекстовоеСодержимое + Символы.ПС;
ТекстСообщения = ТекстСообщения + Якорь.Гиперссылка + Символы.ПС;
КонецЦикла;
Сообщение.Текст = ТекстСообщения;
Сообщение.Сообщить();
КонецПроцедуры
В этом обработчике сначала мы получаем объект ДокументHTML с помощью функции ПолучитьДокументHTML(), в которую передаем текст HTML-документа, содержащийся в реквизите Текст_HTML. Эта функция была рассмотрена выше, в листинге 6.98.
Используя свойство ЭлементДокумента объекта ДокументHTML, мы получаем корневой узел HTML-документа и выводим все его текстовое содержимое в окно сообщений пользователю.
Затем обходим в цикле коллекцию элементов всех изображений HTML-документа (ДокументHTML.Картинки). По мере обхода объектов ЭлементКартинкаHTML выводим пользователю альтернативный текст и источник (URI-адрес) каждой картинки.
Затем обходим в цикле коллекцию элементов всех якорей (гиперссылок) HTML-документа (ДокументHTML.Якоря). По мере обхода объектов ЭлементЯкорьHTML выводим пользователю текстовое содержимое и гиперссылку (адрес другого ресурса) каждой гиперссылки.
Таким образом, после загрузки HTML-документа из файла (кнопка Прочитать HTML из файла) и нажатия кнопки Разобрать HTML будет показано следующее окно сообщений пользователю (рис. 6.17).
Рис. 6.17. Картинки и якоря HTML-документа