|
|
|
Рекурсивная структура xml парсинг
|
|||
|---|---|---|---|
|
#18+
Добрый день, помогите, пожалуйста, как разобрать рекурсивную xml одним запросом? select * from table(XmlSequence (XmlType ( '<?xml version = "1.0"?> <ROWSET> <ROW num="1" name="la1"/> <ROW num="2" name="la2"> <ROW num="22" parent_key ="2" name="la22"/> <ROW num="23" parent_key ="2" name="la23"/> </ROW> </ROWSET>' ).extract('ROWSET/ROW'))) d; Нужно получить строки вида 1 0 la1 2 0 la2 22 2 la22 23 2 la23 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2018, 18:00 |
|
||
|
Рекурсивная структура xml парсинг
|
|||
|---|---|---|---|
|
#18+
milediiraрекурсивную xmlЭто никакая не "рекурсивная xml". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2018, 18:03 |
|
||
|
Рекурсивная структура xml парсинг
|
|||
|---|---|---|---|
|
#18+
Elic, ок, иерархическую ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2018, 18:16 |
|
||
|
Рекурсивная структура xml парсинг
|
|||
|---|---|---|---|
|
#18+
Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2018, 18:31 |
|
||
|
Рекурсивная структура xml парсинг
|
|||
|---|---|---|---|
|
#18+
andrey_anonymous, спасибо большущее, Вы гений! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2018, 05:58 |
|
||
|
Рекурсивная структура xml парсинг
|
|||
|---|---|---|---|
|
#18+
milediiraВы гений!Не совсем. Просто при относительном сравнении с нулём всё кажется недостижимой бесконечностью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2018, 08:14 |
|
||
|
Рекурсивная структура xml парсинг
|
|||
|---|---|---|---|
|
#18+
andrey_anonymous, а можно в этом запросе вывести еще и номер уровня в иерархии? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2018, 08:40 |
|
||
|
Рекурсивная структура xml парсинг
|
|||
|---|---|---|---|
|
#18+
milediiraа можно в этом запросе вывести еще и номер уровня в иерархии?RTFM Hierarchical Queries (FAQ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2018, 08:56 |
|
||
|
Рекурсивная структура xml парсинг
|
|||
|---|---|---|---|
|
#18+
Elic, спасибо большое, все получилось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2018, 10:37 |
|
||
|
Рекурсивная структура xml парсинг
|
|||
|---|---|---|---|
|
#18+
milediiraandrey_anonymous, а можно в этом запросе вывести еще и номер уровня в иерархии? Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2018, 13:17 |
|
||
|
Рекурсивная структура xml парсинг
|
|||
|---|---|---|---|
|
#18+
+аналог sys_connect_by_path: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2018, 13:25 |
|
||
|
Рекурсивная структура xml парсинг
|
|||
|---|---|---|---|
|
#18+
xtender, у меня почему-то так не работает. Уровень выводится как 0, а путь как до текущего элемента. Может быть это появилось в версиях выше чем моя (Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production)? select num, nvl(parent_key,0) parent_key, name , xml_path , num_path , hierarchy_level , parent_key1 from xmltable( '//ROW' passing XmlType('<?xml version = "1.0"?> <ROWSET><ROW num="1" name="la1"/> <ROW num="2" name="la2"><ROW num="22" parent_key ="2" name="la22"/> <ROW num="23" parent_key ="2" name="la23"/> </ROW> </ROWSET>') columns num path '@num' , parent_key path '@parent_key' , name varchar2(100) path '@name' , xml_path varchar2(100) path 'concat("/",string-join(ancestor-or-self::*/name(.), "/"))' , num_path varchar2(100) path 'concat("/",string-join(ancestor-or-self::ROW/@num , "/"))' , hierarchy_level int path 'count(ancestor-or-self::*/name(.))-1' , parent_key1 varchar2(100) path 'concat("/",string-join(../@name, "/"))' ) d; Выдает: 1 0 la1 /ROW /1 0 / 2 0 la2 /ROW /2 0 / 22 2 la22 /ROW /22 0 / 23 2 la23 /ROW /23 0 / ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2018, 09:09 |
|
||
|
Рекурсивная структура xml парсинг
|
|||
|---|---|---|---|
|
#18+
milediira, это просто баг и он уже исправлен в 11.2.0.4, так что сноси XE и ставь что-нибудь посвежее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2018, 12:26 |
|
||
|
Рекурсивная структура xml парсинг
|
|||
|---|---|---|---|
|
#18+
milediira, workaround для 11.2.0.2 Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2018, 14:59 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39592133&tid=1884515]: |
0ms |
get settings: |
17ms |
get forum list: |
16ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
162ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 256ms |
| total: | 517ms |

| 0 / 0 |
