Книга: Технологии интеграции "1С:Предприятия 8.3""
Назад: Прочитать HTML-документ из текста
Дальше: Записать HTML-документ в файл

Прочитать HTML-документ из файла

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

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

Листинг 6.94. Обработчик команды «ПрочитатьHTMLИзФайла»

&НаКлиенте

Процедура ПрочитатьHTMLИзФайла(Команда)

 

ЧтениеHTML = Новый ЧтениеHTML;

ЧтениеHTML.ОткрытьФайл("c:\temp\text_html.html", "UTF-8");

 

ПостроительDOM = Новый ПостроительDOM;

ДокументHTML = ПостроительDOM.Прочитать(ЧтениеHTML);

ЧтениеHTML.Закрыть();

 

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

 

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

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

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

Листинг 6.95. Функция «ПолучитьТекстHTML()»

&НаКлиенте

Функция ПолучитьТекстHTML(ДокументHTML)

 

ЗапиcьHTML = Новый ЗаписьHTML;

ЗапиcьHTML.УстановитьСтроку();

ЗаписьDOM = Новый ЗаписьDOM;

ЗаписьDOM.Записать(ДокументHTML, ЗапиcьHTML);

 

Возврат ЗапиcьHTML.Закрыть();

 

КонецФункции

В этой функции мы создаем объект ЗапиcьHTML и устанавливаем запись данных в строку методом этого объекта УстановитьСтроку(). Затем создаем объект ЗаписьDOM и вызываем его метод Записать(), в который передаем полученный в виде параметра ДокументHTML и объект записи ЗаписьHTML. Поскольку была установлена запись в строку, то при выполнении метода Закрыть() будет получена строка с текстом HTML-документа, который и возвращает функция ПолучитьТекстHTML().

После загрузки этого текста в реквизит АдресHTML (см. листинг 6.94) содержимое документа будет показано в поле HTML-документа в форме обработки и у этого поля будет вызвано событие ДокументСформирован. Согласно обработчику этого события (см. листинг 6.92) текст HTML-документа будет запомнен в реквизите Текст_HTML (рис. 6.15).

Рис. 6.15. Содержимое и текст прочитанного из файла HTML-документа

Поскольку текст HTML-документа отображается в текстовом поле, связанном с реквизитом Текст_HTML, то можно изменить этот текст, сохранить изменения и посмотреть результат.

Для этого добавим команду СохранитьИзменения. Обработчик команды заполним следующим образом (листинг 6.96).

Листинг 6.96. Обработчик команды «СохранитьИзменения»

&НаКлиенте

Процедура СохранитьИзменения(Команда)

 

Документ_HTML = Элементы.ПолеHTML.Документ;

Документ_HTML.documentElement.innerHTML = Текст_HTML;

 

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

В этом обработчике, используя свойство innerHTML объектной модели документа, мы заменяем текстовое содержимое HTML-документа на новое, хранящееся в реквизите Текст_HTML.

Например, изменив имя рисунка в тексте HTML-документа и нажав кнопку Сохранить изменения, мы увидим следующий результат (рис. 6.16).

Рис. 6.16. Содержимое и текст измененного HTML-документа

Назад: Прочитать HTML-документ из текста
Дальше: Записать HTML-документ в файл