ДокументHtml
Стд::ДокументHtml::ДокументHtml Доступность: Сервер
Объект для работы с HTML-документам.
По ссылке
Иерархия типа
Базовые типы: Объект, Стд::ДокументHtml::УзелHtml
Конструкторы
ДокументHtml
Доступность: Сервер
ДокументHtml(БазовыйUrl: Строка = "")Свойства
БазовыйUrl
Доступность: Сервер
ТолькоЧтение
БазовыйUrl: СтрокаБазовый Url для узла, нужен для создания абсолютных ссылок из относительных.
ВесьТекст
Доступность: Сервер
ТолькоЧтение
ВесьТекст: СтрокаНенормализованный текст, который скомбинирован с собственным текстом элемента и текстом его дочерних.
- Закодированный текст- это текст, в котором заменены спец символы (например "<" на "<")
- Нормализованный текст- это текст, в котором все пробельные символы (перенос строки, символы табуляции) заменены одним пробелом. Несколько идущих подряд пробелов заменены одним пробелом. То есть это текст, который увидит пользователь при отображении этого html
Примеры
метод НенормализованныйТекст(Парсер: РазборHtml)
пер Документ = Парсер.Разобрать(
"<p style=\"margin: 0 0 16px;\">Мы пришлем Вам доступ в течении дня. Ожидайте.</p>\n" +
"<p style=\"margin: 0 0 16px;\">Если вдруг по каким-то причинам вы не получили ключ...</p>")
.Документ
// Тогда Документ.ВесьТекст:
// "Мы пришлем Вам доступ в течении дня. Ожидайте.
// Если вдруг по каким-то причинам вы не получили ключ..."
;
Голова
Доступность: Сервер
ТолькоЧтение
Голова: ЭлементHtml?Голова (<head>) документа, если логика html сломана, и в коде несколько head, возвращается первый элемент.
Неопределено, если элемент был удален вручную.
Заголовок
Доступность: Сервер
Заголовок: Строка?Заголовок (<title> из head) документа или Неопределено, если не существует.
Если тега не было в исходном документе, а после задали значение свойства, то тег в документе появится.
НормализованныйТекст
Доступность: Сервер
ТолькоЧтение
НормализованныйТекст: СтрокаНормализованный текст, который скомбинирован с собственным текстом элемента и текстом его дочерних.
- Закодированный текст- это текст, в котором заменены спец символы (например "<" на "<")
- Нормализованный текст- это текст, в котором все пробельные символы (перенос строки, символы табуляции) заменены одним пробелом. Несколько идущих подряд пробелов заменены одним пробелом. То есть это текст, который увидит пользователь при отображении этого html
Примеры
метод НормализованныйТекст(Парсер: РазборHtml)
пер Документ = Парсер.Разобрать(
"<p style=\"margin: 0 0 16px;\">Мы пришлем Вам доступ в течении дня. Ожидайте.</p>\n" +
"<p style=\"margin: 0 0 16px;\">Если вдруг по каким-то причинам вы не получили ключ...</p>")
.Документ
// Тогда Документ.НормализованныйТекст:
// "Мы пришлем Вам доступ в течении дня. Ожидайте. Если вдруг по каким-то причинам вы не получили ключ..."
;
Тело
Доступность: Сервер
ТолькоЧтение
Тело: ЭлементHtml?Тело (<body>) документа, если логика html сломана, и в коде несколько body, возвращается первый элемент.
Неопределено, если элемент был удален вручную.
ТипДокумента
Доступность: Сервер
ТипДокумента: УзелТипДокументаHtml?Значение из Doctype, если логика html сломана, и в коде несколько таких узлов, возвращается первый.
Неопределено, если узла не существует.
ЭлементДокумента
Доступность: Сервер
ТолькоЧтение
ЭлементДокумента: ЭлементHtml?Элемент <html>, если логика html сломана, и в коде несколько тегов html, возвращается первый элемент.
Неопределено, если элемент был удален вручную.
Методы
ВСтроку
Доступность: Сервер
ВСтроку(): СтрокаВозвращает строковое представление документа.
Нормализовать
Доступность: Сервер
Нормализовать()Примеры
метод Нормализовать(Документ: ДокументHtml)
// Исходный код: <html><body><i> Some text in italics </i></body></html>
Документ.Голова.ВнешнийКод() // будет равен <head></head>, потому что при создании документа происходит нормализация.
// Попробуем добавить еще одну голову
Документ.Голова.ВставитьКопииУзловПослеТекущего(новый ЭлементHtml("head"))
Документ.Нормализовать() // Объединит несколько голов
/* Результат, код:
<html>
<head></head>
<body>
<i> Some text in italics </i>
</body>
</html> */
;
ПолучитьДочерниеЭлементы
Доступность: Сервер
ПолучитьДочерниеЭлементы(
Поддерево: Булево = Ложь,
Фильтр: ((ЭлементHtml)->Булево)? = Неопределено
): ЭлементыHtmlПримеры
метод ПолучитьДочерниеЭлементы(Документ: ДокументHtml)
/*
Для кода:
<html><body>
<!-- Первый контейнер -->
<div id="first">
<!-- Второй контейнер -->
<div id="second">
<p>Some text</p>
</div>
</div>
</body></html>
*/
Документ.ПолучитьДочерниеЭлементы(Истина) // Вернет все элементы в этом html
Документ.ПолучитьДочерниеЭлементы() // Вернет коллекцию из одного элемента - <html>
// Вернет коллекцию из двух div
Документ.ПолучитьДочерниеЭлементы(Истина, Элемент -> Элемент.Ид != Неопределено)
;
ПолучитьИзПоддереваЭлементыПоАтрибуту
Доступность: Сервер
ПолучитьИзПоддереваЭлементыПоАтрибуту(
Тег: Строка,
ИмяАтрибута: Строка,
ЗначениеАтрибута: Образец|Строка|? = Неопределено
): ЭлементыHtmlПримеры
метод ПолучитьВсеИзображенияИзВложенияПисьма(Документ: ДокументHtml): ЭлементыHtml
// Изображения в письме для отображения из вложений в атрибуте src начинаются с "cid:"
возврат Документ.ПолучитьИзПоддереваЭлементыПоАтрибуту("img", "src", 'cid:.*')
;
ПолучитьИзПоддереваЭлементыПоТегу
Доступность: Сервер
ПолучитьИзПоддереваЭлементыПоТегу(Тег: Строка): ЭлементыHtmlПримеры
метод ПолучитьВсеИзображения(Документ: ДокументHtml): ЭлементыHtml
возврат Документ.ПолучитьИзПоддереваЭлементыПоТегу("img")
;
ПолучитьИзПоддереваЭлементыССобственнымТекстом
Доступность: Сервер
ПолучитьИзПоддереваЭлементыССобственнымТекстом(Текст: Образец|Строка): ЭлементыHtml
- Закодированный текст- это текст, в котором заменены спец символы (например "<" на "<")
- Нормализованный текст- это текст, в котором все пробельные символы (перенос строки, символы табуляции) заменены одним пробелом. Несколько идущих подряд пробелов заменены одним пробелом. То есть это текст, который увидит пользователь при отображении этого html
Получить дочерние элементы из поддерева в собственном нормализованном тексте, которых содержится указанная подстрока или значение удовлетворяет образцу. В случае строки поиск идет не чувствительный к регистру.
Примеры
метод ПолучитьДочерниеЭлементыИзПоддерева(Парсер: РазборHtml)
пер Документ = Парсер.Разобрать("<p style=\"margin: 0 0 16px;\">Мы пришлем Вам доступ в личный" +
"кабинет в течении дня. Ожидайте.</p>\n" +
"<p style=\"margin: 0 0 16px;\">Если вдруг по каким-то причинам вы не получили ключ доступа - напишите в онлайн" +
"чат на нашем сайте, пожалуйста.</p>")
.Документ
пер Элементы = Документ.ПолучитьИзПоддереваЭлементыССобственнымТекстом("личный кабинет")
Элементы[0].ВнешнийКод()
/*
Результат:
<p style="margin: 0 0 16px;">Мы пришлем Вам доступ в личный кабинет в течении дня. Ожидайте.</p>
*/
;
УстановитьТипДокумента
Доступность: Сервер
УстановитьТипДокумента(ТипДокумента: УзелТипДокументаHtml?)Список унаследованных методов
Объект
УзелHtml
ВнешнийКод, ВставитьКопииУзловДоТекущего, ВставитьКопииУзловПослеТекущего, ОбойтиВГлубину, Удалить
Список унаследованных свойств
УзелHtml
ДиапазонВКоде, ДокументВладелец, ДочерниеУзлы, ПредыдущийСосед, Родитель, СледующийСосед