Таблица, подпись, строка и ячейка: сравнение узлов

Учебные задачи

Разбираем собственную разметку и сравниваем связанные реальные узлы, не выдавая сравнение за изменение их порядка.

Где и как запускать

Синтаксический пример для серверного обработчика или толстого клиента. ЧтениеHTML и ПостроительDOM разбирают собственную строку в память; это не открытие страницы в браузере. Здесь код не выполнялся.

Подготовка

  1. HTML уже задан в строке. Все идентификаторы относятся к элементам именно этого документа.

  2. Фрагмент только разбирается как данные: адреса, выполнение скриптов, отправка формы и загрузка объектов не используются.

Чтение = Новый ЧтениеHTML;
Чтение.УстановитьСтроку("<html><body><table id=""table""><caption id=""caption"">Заказ</caption><tbody><tr id=""row""><td id=""cell"">Книга</td></tr></tbody></table></body></html>");
Построитель = Новый ПостроительDOM;
Документ = Построитель.Прочитать(Чтение);
Чтение.Закрыть();
Таблица = Документ.ПолучитьЭлементПоИдентификатору("table");
Подпись = Документ.ПолучитьЭлементПоИдентификатору("caption");
СтрокаЗаказа = Документ.ПолучитьЭлементПоИдентификатору("row");
Ячейка = Документ.ПолучитьЭлементПоИдентификатору("cell");
Таблица.СравнитьПозициюВДокументе(Подпись);
Подпись.СравнитьПозициюВДокументе(СтрокаЗаказа);
СтрокаЗаказа.СравнитьПозициюВДокументе(Ячейка);
Ячейка.СравнитьПозициюВДокументе(Таблица);
Сообщить("Синтаксические вызовы сравнения выполнены; содержимое документа не редактировалось");

Разбор по шагам

  1. Разберите строку в ДокументHTML.

  2. Получите элементы по их идентификаторам и вызовите сравнение между указанными узлами.

  3. Учитывайте ограничение справки: пример не интерпретирует недокументированный результат.

Как проверить результат

  1. Все указанные идентификаторы должны находиться в подготовленной строке; Неопределено не является узлом для вызова.

  2. Вызовы сравнения не вставляют, не перемещают и не удаляют элементы.

Ожидаемый результат

Приведён короткий пример синтаксиса и его ограничения. Здесь он не запускался в 1С; выполните проверки в своём учебном контексте.

На что обратить внимание

  1. В установленной справке СравнитьПозициюВДокументе не указан тип возвращаемого значения. Поэтому вызовы показаны без присваивания результата; числовые маски, конкретные коды и успешный результат здесь не выдумываются.

  2. Структура HTML и порядок исходных элементов не равны порядку их визуального отображения.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.