Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
all(/OBJS/Var[@A is int and @A > 5] )if all(/OBJS/Var[@A is int and @A > 5] ):
/OBJS/Var[@A]
else:
/OBJS/Var[@B]concat_list($#, $##): add_list(#/self::*) and add_list(##/self::*)достраивать новые узлы таким образом, чтобы они полностью соответствовали запросу.
[@A=2 or @A=3] вы что-то придумали, а как будете восстанавливать [@A>1]?// и * ?а как будете восстанавливать [@A>1]?
Выражение XPath сводит структуру элемента к списку, положим, элементов.для агрегации условий по множеству значений могут использоваться any, all, notall, none или использование булевого массива как вилки в if/else которая возвращает массив значений оттуда или оттуда
C [@A=2 or @A=3] вы что-то придумали, а как будете восстанавливать [@A>1]?
Как будете обрабатывать // и *
Но используется он только для фильтрации на очередном шаге, порождать новых вариантов такая часть, разумеется, не будет.
Но, конечно, "*" ничего создать не может.
полученный XML удовлетворяет ВСЕМ случаям из его таблицы истинности, дающим в результате истинное значение.Не всем же.
В случае Var[@A=1 or @A=2] таблица истинности предиката включает единственную переменную A, при чем же здесь B?В моём понимании таблица истинности — эта таблица из двух колонок, в первой перечислены все объекты из области определения предиката (все возможные узлы в нашем случае, в т.ч. содержащие другие атрибуты, дочерние узлы и т.п.), а во второй — True/False.
Конструирующий XPath? Алгоритмический XPath? Ничего, кроме XPath