АтрибутHTML.СравнитьПозициюВДокументе

Методы · CompareDocumentPosition

Сравнивает данный узел с узлом, переданным в качестве параметра, для определения позиции относительно документа.

Синтаксис

СравнитьПозициюВДокументе(<Узел>)
Полное описание, параметры и ограничения

АтрибутHTML.СравнитьПозициюВДокументе (HTMLAttribute.CompareDocumentPosition)

АтрибутHTML (HTMLAttribute)

СравнитьПозициюВДокументе (CompareDocumentPosition)

Доступен, начиная с версии 8.2.

Синтаксис:
СравнитьПозициюВДокументе(<Узел>)
Параметры:

<Узел> (обязательный)
Тип: АтрибутHTML, ЭлементHTML, ЭлементКнопкаHTML, ЭлементВводаHTML, ЭлементЗаголовокHTML, ЭлементРазметкаHTML, ЭлементПлавающийФреймHTML, ЭлементВставкаHTML, ЭлементФреймHTML, ЭлементНаборФреймовHTML, ЭлементМетаHTML, ЭлементОбъектHTML, ЭлементСкриптHTML, ЭлементТаблицаHTML, ЭлементСтрокаТаблицыHTML, ЭлементЯчейкаТаблицыHTML, ЭлементКолонкаТаблицыHTML, ЭлементЗаголовокТаблицыHTML, ЭлементБлокHTML, ЭлементЛинияHTML, ЭлементФорматированногоТекстаHTML, ЭлементКартинкаHTML, ЭлементСвязьHTML, ЭлементЯкорьHTML, ЭлементАплетHTML, ЭлементФормаHTML, ДокументHTML, ТекстHTML, КомментарийHTML.
Узел HTMLDOM, с которым происходит сравнение.
Описание:

Сравнивает данный узел с узлом, переданным в качестве параметра, для определения позиции относительно документа.

Доступность:

Тонкий клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.

Использование в версии:

Доступен, начиная с версии 8.2.

Методическая информация

Практические примеры

Атрибут: первый и последний дочерний узел

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

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

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

Подготовка

  1. Документ и атрибут создаются в памяти. Атрибут ещё не прикреплён к элементу; это не запись реквизита 1С.

Чтение = Новый ЧтениеHTML;
Чтение.УстановитьСтроку("<html><body><span id=""label"">Книга</span></body></html>");
Построитель = Новый ПостроительDOM;
Документ = Построитель.Прочитать(Чтение);
Чтение.Закрыть();
Атрибут = Документ.СоздатьАтрибут("data-code");
Атрибут.Значение = "BOOK";
Первый = Атрибут.ПервыйДочерний;
Последний = Атрибут.ПоследнийДочерний;
Если Первый <> Неопределено И Последний <> Неопределено Тогда
    Сообщить("Один и тот же узел: " + Строка(Первый.УзелИдентичен(Последний)));
КонецЕсли;
Метка = Документ.ПолучитьЭлементПоИдентификатору("label");
Атрибут.СравнитьПозициюВДокументе(Метка);
Сообщить(Атрибут.Значение);

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

  1. Создайте атрибут в собственном ДокументHTML и задайте значение BOOK.

  2. Прочитайте ПервыйДочерний и ПоследнийДочерний и сравните реальные узлы на идентичность.

  3. Покажите синтаксис сравнения атрибута с элементом документа без выдуманного кода результата.

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

  1. После установки значения первый и последний дочерний относятся к одному созданному текстовому узлу.

  2. Значение атрибута остаётся BOOK; свойства границ только читаются.

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

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

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

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

  2. В справке у свойств границ объявлен АтрибутHTML, а описание установки Значение говорит о текстовом узле. Не обещайте конкретный тип дочернего по этому противоречию.

  3. Неприкреплённый атрибут не имеет обычной позиции соседнего элемента в дереве.

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

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

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

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

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