О некоторых особенностях реализации парсера XPath в 1С

25.07.24

Разработка - Механизмы платформы 1С

О некоторых особенностях реализации парсера XPath в 1С, из-за которых может возникать ошибка "Ошибка в выражении XPath Invalid expression "

Наткнулся на одну особенность парсера XPath в 1С, из-за которой вполне валидные запросы вызывают ошибку "XPath Invalid expression".

Если попытаться, например, выбрать узлы, содержащие некое значение атрибута, но при этом не содержащие дочерние узлы определенного вида, то выражение с функцией not(), примененной к элементу, приводит к ошибке.

/*/ElementA[ElementB[@attrib="value"]/not(ElementC)]



В то же время отрабатывает запрос
 

/*/ElementA[ElementB[@attrib="value"] and not(descendant::elementC)] 


Но, например, в Oxygen XML Editor отрабатывают оба запроса (для демонстрации использована XSD-схема от EnterpriseData 1.17, выбираются узлы вида "simpleType" c типом "string", но не являющиеся перечислениями (то есть не содержащие подузлы вида "enumeration").






Вывод такой: получается, что необходимо пока воздерживаться от применения функции not() непосредственно к элементу поиска, а использовать ось descendant:: .

Возможно, в будущих релизах платформы ситуация изменится.

Может быть, кому-то будет полезно.

разработка XPath интеграция

См. также

Механизмы платформы 1С Работа с интерфейсом Программист Стажер Платформа 1С v8.3 Бесплатно (free)

Про ООП в 1С и о том, как сделать свой код более кратким и выразительным при помощи использования текучего интерфейса (fluent interface).

03.02.2025    6469    bayselonarrend    126    

59

Механизмы платформы 1С Программист Платформа 1С v8.3 Бесплатно (free)

В платформе 8.3.27 появилась возможность использовать WebSocket-клиент. Давайте посмотрим, как это все устроено и чем оно нам полезно.

14.01.2025    8411    dsdred    60    

106

Механизмы платформы 1С Программист Стажер Платформа 1С v8.3 1C:Бухгалтерия Бесплатно (free)

Эта небольшая статья - некоторого рода шпаргалка по файловым потокам: как и зачем с ними работать, какие преимущества это дает.

23.06.2024    12220    bayselonarrend    21    

162

Механизмы платформы 1С Программист Стажер Платформа 1С v8.3 1C:Бухгалтерия Бесплатно (free)

Пример использования «Сервисов интеграции» без подключения к Шине и без обменов.

13.03.2024    8121    dsdred    18    

82

Механизмы платформы 1С Программист Стажер Платформа 1С v8.3 Бесплатно (free)

Все мы используем массивы в своем коде. Это один из первых объектов, который дают ученикам при прохождении обучения программированию. Но умеем ли мы ими пользоваться? В этой статье я хочу показать все методы массива, а также некоторые фишки в работе с массивами.

24.01.2024    28732    YA_418728146    33    

73
Оставьте свое сообщение