Отображать узлы инструкций обработки. Значение применяется к конкретной операции из примера.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Используйте серверную процедуру учебной обработки. Код без директив вставьте в её тело; отдельные реквизиты конфигурации не нужны.
Все XML, DOM и JSON этого урока создаются из собственных строк в памяти. Не открывайте полученный HTML в браузере и не подставляйте рабочие файлы.
Док = Новый ДокументDOM("", "товары");
Товар = Док.СоздатьЭлемент("товар");
Док.ЭлементДокумента.ДобавитьДочерний(Товар);
Товар.УстановитьАтрибут("код", "1");
Товар.ДобавитьДочерний(Док.СоздатьТекстовыйУзел("Книга"));
Товар.ДобавитьДочерний(Док.СоздатьСекциюCDATA(" + справочник"));
Товар.ДобавитьДочерний(Док.СоздатьКомментарий("проверка"));
Инструкция = Док.СоздатьИнструкциюОбработки("learn", "demo");
Док.ВставитьПеред(Инструкция, Док.ЭлементДокумента);
Корень = Док;
Фильтр = Новый ФильтрУзловDOM(, , , , , , , ПараметрыОтбораУзловDOM.ОтображатьИнструкциюОбработки);
Итератор = Док.СоздатьИтераторУзлов(Корень, Фильтр);
Количество = 0;
Узел = Итератор.СледующийУзел();
Пока Узел <> Неопределено Цикл
Количество = Количество + 1;
Сообщить(Узел.ИмяУзла);
Узел = Итератор.СледующийУзел();
КонецЦикла;
Сообщить("Найдено: " + Строка(Количество));Разбор по шагам
Дерево явно создаётся из элементов, текста, CDATA, комментария и инструкции обработки; параметры XML-парсера на его состав не влияют.
Аргумент перечисления поставлен на соответствующую позицию конструктора; пропущенные параметры не добавляют другие виды узлов.
Итератор начинается перед выбранным корнем; каждое получение следующего узла меняет его позицию.
Как проверить результат
Последняя строка: Найдено: 1.
Пустой результат для сущности, нотации, ссылки на сущность или DTD ожидаем: в учебном XML их нет. Это реальный отбор, не создание таких узлов.
Ожидаемый результат
Обойдены только узлы выбранного вида.
На что обратить внимание
Атрибут не является дочерним узлом элемента; для его демонстрации выбран отдельный корень-атрибут.
Фрагмент документа создаётся отдельно; по умолчанию он не находится внутри исходного документа.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.