|
XPATH фильтр на выборку дерева
|
|||
---|---|---|---|
#18+
Доброго времени суток. Как говорится... сильно не пинайте, в XML новичёк. Попытаюсь изложить задачу доступным мне способом... Имеется: Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
По сути выгрузка иерархического справочника. Некоторые узлы которого являются "группами" а некоторые "элементами", соответственно, у первых Group=1 у вторых Group=0. У узлов-элементов, есть атрибут - пусть будет attrib. Он есть у всех. Строка. Пустая или содержащая некоторое значение. Хотелось бы, построить XPATH запрос, который, выбрал бы те элементы, у которых значение attrib не содержится в неком... списке-массиве. Ну... что-то вроде такого Код: sql 1.
Не просто линейный список, из этих элементов, а с группировками. Например. Пусть значения "abc" и "cba" составляют массив значений, которые я не хочу видеть в выборке. Т.е. меня интересуют два оставшихся элемента в файле - "cba" и "" (пустая строка) Я бы, хотел получить вот такой результат запроса Код: xml 1. 2. 3. 4. 5. 6. 7. 8.
Т.е. дерево, из которого исключены не нужные мне элементы и сохранена структура вложенности. Повторюсь, атрибут attrib у узлов-групп нет. Как это сделать.. и возможно ли вообще? (перечень исключаемых может быть несколько сотен) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2015, 14:55 |
|
XPATH фильтр на выборку дерева
|
|||
---|---|---|---|
#18+
The Dim!(перечень исключаемых может быть несколько сотен)Значит условие будет километровое. Чтобы не городить такого ужаса, нужно из значений-исключений создать отдельный набор элементов или документ, включаемый с помощью функции document(). ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2015, 15:03 |
|
XPATH фильтр на выборку дерева
|
|||
---|---|---|---|
#18+
Если бы, я знал заранее значения-исключения, то да, разбить по нескольким файлам было бы хорошее решение. Тогда бы нужно было просто выбирать из того или иного файла... Но к сожалению, исходный xml-файл я получаю уже в готовом виде. На текущей момент, решение в виде безусловной выборки, и уже при обходе дерева делать проверки. В принципе, пока что устраивает. Но хотелось бы, как-то сразу, при выборке, отфильтровать. А вообще, как в мире XML принято решать подобные задачи? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2015, 15:18 |
|
XPATH фильтр на выборку дерева
|
|||
---|---|---|---|
#18+
The Dim!Если бы, я знал заранее значения-исключенияНу так откуда они берутся? Внезапно приходят озарениями во сне? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2015, 15:28 |
|
XPATH фильтр на выборку дерева
|
|||
---|---|---|---|
#18+
Банально, создали в базе новый элемент справочника. Мне он прилетел в xml-файле. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2015, 16:31 |
|
XPATH фильтр на выборку дерева
|
|||
---|---|---|---|
#18+
The Dim!Банально, создали в базе новый элемент справочника. Мне он прилетел в xml-файле.В каком справочнике создали новый элемент? Том, что мы фильтруем? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2015, 17:29 |
|
|
start [/forum/moderation_log.php?user_name=%D1%82%D1%80%D0%BE%D0%BB%D0%B8%D0%BB+%D0%A7%D0%90%D0%9B%D0%B0]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
78ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
42ms |
get tp. blocked users: |
2ms |
others: | 437ms |
total: | 631ms |
0 / 0 |