powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / XPATH фильтр на выборку дерева
7 сообщений из 7, страница 1 из 1
XPATH фильтр на выборку дерева
    #38897290
The Dim!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени суток.

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

Имеется:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
<Ref Group=1>
        <Ref attrib="" Group=0>...</Ref>
</Ref>
<Ref Group=1>
        <Ref attrib="abc" Group=0>...</Ref>
       <Ref Group=1>
               <Ref attrib="cba" Group=0>...</Ref>
       </Ref>
</Ref>
<Ref Group=1>
        <Ref attrib="cba" Group=0>...</Ref>
</Ref>



По сути выгрузка иерархического справочника. Некоторые узлы которого являются "группами" а некоторые "элементами", соответственно, у первых Group=1 у вторых Group=0.
У узлов-элементов, есть атрибут - пусть будет attrib. Он есть у всех. Строка. Пустая или содержащая некоторое значение.

Хотелось бы, построить XPATH запрос, который, выбрал бы те элементы, у которых значение attrib не содержится в неком... списке-массиве.

Ну... что-то вроде такого
Код: sql
1.
/Ref WHERE attrib NOT IN (ArrayAttrib) OR NOT(attrib)


Не просто линейный список, из этих элементов, а с группировками.

Например.
Пусть значения "abc" и "cba" составляют массив значений, которые я не хочу видеть в выборке. Т.е. меня интересуют два оставшихся элемента в файле - "cba" и "" (пустая строка)

Я бы, хотел получить вот такой результат запроса
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
<Ref Group=1>
        <Ref attrib="" Group=0>...</Ref>
</Ref>
<Ref Group=1>
       <Ref Group=1>
               <Ref attrib="cba" Group=0>...</Ref>
       </Ref>
</Ref>



Т.е. дерево, из которого исключены не нужные мне элементы и сохранена структура вложенности. Повторюсь, атрибут attrib у узлов-групп нет.

Как это сделать.. и возможно ли вообще?
(перечень исключаемых может быть несколько сотен)
...
Рейтинг: 0 / 0
XPATH фильтр на выборку дерева
    #38897303
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
The Dim!(перечень исключаемых может быть несколько сотен)Значит условие будет километровое.

Чтобы не городить такого ужаса, нужно из значений-исключений создать отдельный набор элементов или документ, включаемый с помощью функции document().
...
Рейтинг: 0 / 0
XPATH фильтр на выборку дерева
    #38897335
The Dim!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если бы, я знал заранее значения-исключения, то да, разбить по нескольким файлам было бы хорошее решение. Тогда бы нужно было просто выбирать из того или иного файла...

Но к сожалению, исходный xml-файл я получаю уже в готовом виде.

На текущей момент, решение в виде безусловной выборки, и уже при обходе дерева делать проверки.
В принципе, пока что устраивает.

Но хотелось бы, как-то сразу, при выборке, отфильтровать.


А вообще, как в мире XML принято решать подобные задачи?
...
Рейтинг: 0 / 0
XPATH фильтр на выборку дерева
    #38897351
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
The Dim!Если бы, я знал заранее значения-исключенияНу так откуда они берутся? Внезапно приходят озарениями во сне?
...
Рейтинг: 0 / 0
XPATH фильтр на выборку дерева
    #38897439
The Dim!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Банально, создали в базе новый элемент справочника. Мне он прилетел в xml-файле.
...
Рейтинг: 0 / 0
XPATH фильтр на выборку дерева
    #38897493
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
The Dim!Банально, создали в базе новый элемент справочника. Мне он прилетел в xml-файле.В каком справочнике создали новый элемент? Том, что мы фильтруем?
...
Рейтинг: 0 / 0
XPATH фильтр на выборку дерева
    #38898608
The Dim!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, в том, что фильтруем.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / XPATH фильтр на выборку дерева
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]