|
|
|
XML в Oracle9i. Примеры разборки
|
|||
|---|---|---|---|
|
#18+
Добрый день! Помогите разобраться в разборке XML в Oracle 9i. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Есть массив: v_array_surnames Как можно вытащить все значения аттбирута с name="SURNAME" сразу в массив? XML у меня типа Xmltype; Заранее благодарен! Flukky ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2005, 15:23 |
|
||
|
XML в Oracle9i. Примеры разборки
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2005, 15:41 |
|
||
|
XML в Oracle9i. Примеры разборки
|
|||
|---|---|---|---|
|
#18+
Действительно, работает очень красиво. Подскажите, пожалуйста, где найти инфрмацию про XMLSequence и Extract (а также другими функциями по обработке XMLType). Oracle9i XML API Reference - XDK and Oracle XML DB Release 2 (9.2) Part VI XML Database Support: Oracle XML DB for PL/SQL Тут я что-то не могу найти :/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2005, 16:32 |
|
||
|
XML в Oracle9i. Примеры разборки
|
|||
|---|---|---|---|
|
#18+
Поищи рядом, в XML Database Developer's Guide - Oracle XML DB , или просто поиском: http://www.oracle.com/pls/db92/db92.drilldown?remark=&word=XMLSequence+and+extract ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2005, 16:55 |
|
||
|
XML в Oracle9i. Примеры разборки
|
|||
|---|---|---|---|
|
#18+
Мне очень интересно, почему не работает такой запрос: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Запрос остаёться тем же, но в теге <RESPONSE> появились дополнительная информация Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2005, 17:23 |
|
||
|
XML в Oracle9i. Примеры разборки
|
|||
|---|---|---|---|
|
#18+
Denis PopovПоищи рядом, в XML Database Developer's Guide - Oracle XML DB , или просто поиском: http://www.oracle.com/pls/db92/db92.drilldown?remark=&word=XMLSequence+and+extract Спасибо, попробуем! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2005, 17:24 |
|
||
|
XML в Oracle9i. Примеры разборки
|
|||
|---|---|---|---|
|
#18+
В документации по 9-ке сразу не нашел, а в документации по Oracle10g есть: http://www.oracle.com/pls/db102/drilldown?remark=quick_search&word=XMLSequence+and+xmlns Впрочем, работает и в 9i: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. Обрати внимание на выделенную строку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2005, 18:11 |
|
||
|
XML в Oracle9i. Примеры разборки
|
|||
|---|---|---|---|
|
#18+
А можно, например, какой-то функцией удалить всю дополнительную информацию из тега RESPONSE? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2005, 18:36 |
|
||
|
XML в Oracle9i. Примеры разборки
|
|||
|---|---|---|---|
|
#18+
А конкретно, эту ерудну: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2005, 18:37 |
|
||
|
XML в Oracle9i. Примеры разборки
|
|||
|---|---|---|---|
|
#18+
В качестве одной мысли: если исходный XML окаймить еще одним элементом, т.е. вложить в некий другой XML, то extract(), с учетом исправленного пути, работает и без namespace. Осталось только понять, можно ли это сделать максимально легко. В Oracle10 есть метод XMLType.insertXMLBefore(), но в Oracle 9.2 его еще нет. Хотя, думаю, должны быть и другие варианты, может есть способ получить все namespace'ы из документа? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2005, 20:01 |
|
||
|
XML в Oracle9i. Примеры разборки
|
|||
|---|---|---|---|
|
#18+
Denis Popovможет есть способ получить все namespace'ы из документа? например, через xmlparser и xmldom: http://download-west.oracle.com/docs/cd/B10501_01/appdev.920/a96621/adx20ppl.htm#1006936 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2005, 20:20 |
|
||
|
XML в Oracle9i. Примеры разборки
|
|||
|---|---|---|---|
|
#18+
Denis Popov Denis Popovможет есть способ получить все namespace'ы из документа? например, через xmlparser и xmldom: http://download-west.oracle.com/docs/cd/B10501_01/appdev.920/a96621/adx20ppl.htm#1006936 Что-то похожее я делал в 8 оракле. Это сначала нужно сложить всё в массив, потом в цикле IFами уже вытаскивать по нужным переменным. Это дело может быть долгим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2005, 09:34 |
|
||
|
XML в Oracle9i. Примеры разборки
|
|||
|---|---|---|---|
|
#18+
И ещё вопрос по этой же теме. Возвращается XML в формате <?xml version="1.0" encoding="utf-8" ?>. Как сменить кодировку на windows-1257? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2005, 09:45 |
|
||
|
XML в Oracle9i. Примеры разборки
|
|||
|---|---|---|---|
|
#18+
Родился ещё один вопрос. Допустим, у нас есть тот же XML, но уже с двумя "пакетами" внутри: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Тоесть есть 2 персоны и только у одной есть пасспорт. Пакеты 001 и 002 связаны по PERS_ID. Делаю запрос: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. В результате получаем только ту персону, у которой есть пасспорт: Код: plaintext 1. 2. 3. 4. Код: plaintext 1. 2. 3. 4. Оператор (+) не работает :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2005, 12:12 |
|
||
|
XML в Oracle9i. Примеры разборки
|
|||
|---|---|---|---|
|
#18+
Flukky wrote: > Что-то похожее я делал в 8 оракле. Это сначала нужно сложить всё в > массив, потом в цикле IFами уже вытаскивать по нужным переменным. Это > дело может быть долгим. Я думал про следующее: через xmldom.getNamespace() получить только этот самый namespace и потом уже его использовать в extract(). Хотя это получается двойной разбор одного и того же XML. Для уменьшения накладных расходов Тут можно попробовать еще один вариант: через аналогичный пример, используя xslprocessor, получить новый XML (раз исходный уже разобран), содержащий минимум требуемых данных, и потом его уже скормить XMLType. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2005, 13:54 |
|
||
|
XML в Oracle9i. Примеры разборки
|
|||
|---|---|---|---|
|
#18+
FlukkyРодился ещё один вопрос. Код: plaintext 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. 36. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2005, 14:09 |
|
||
|
XML в Oracle9i. Примеры разборки
|
|||
|---|---|---|---|
|
#18+
Денис, спасибо огромнейшее! Пока буду пробывать предложенные варианты, задам ещё один вопрос. Вопрос 1. Часть 1. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Код: plaintext 1. 2. Запрос с extractValue() ругается на то, что возвращено более одной строки и я его понимаю :) Вопрос 1. Часть 2. Можно ли значения <ERROR> сложить сразу же в виде: "сообщение1; сообщение2; сообщение3" с помощью XML-парсера? Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2005, 16:00 |
|
||
|
XML в Oracle9i. Примеры разборки
|
|||
|---|---|---|---|
|
#18+
1. Используй text() для вывода значения элемента Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Второе можно делать разными путями, например: XMLSequence возвращает тип table of XMLType, к нему е можно привести: Код: plaintext 1. 2. 3. 4. Через XSL: Код: plaintext 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. 36. 37. 38. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2005, 16:44 |
|
||
|
XML в Oracle9i. Примеры разборки
|
|||
|---|---|---|---|
|
#18+
Denis Popov1. Используй text() для вывода значения элемента Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Да, но в этом случае результат будет: Код: plaintext 1. А мне бы хотелось его красиво оформить перед этим. Error1; Error2; ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2005, 11:29 |
|
||
|
XML в Oracle9i. Примеры разборки
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. Только как я могу узнать, сколько элементов <ERROR> у меня в документе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2005, 11:31 |
|
||
|
XML в Oracle9i. Примеры разборки
|
|||
|---|---|---|---|
|
#18+
Flukky wrote: > А мне бы хотелось его красиво оформить перед этим. Error1; Error2; ... Тогда действуй как я уже говорил: либо через XSL, либо получай несколько записей и обрабатывай их собственной процедурой. Но text() все равно придется использовать для получения значения элемента. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2005, 12:38 |
|
||
|
XML в Oracle9i. Примеры разборки
|
|||
|---|---|---|---|
|
#18+
Denis Popov либо получай несколько записей и обрабатывай их собственной процедурой. Но text() все равно придется использовать для получения значения элемента. Я сделал без text() и без собственной процедуры: 1. Вытащил записи в формате <ERROR>...</ERROR> 2. Спомощью функции Replace заменил эти теги Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Работать работает :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2005, 13:55 |
|
||
|
XML в Oracle9i. Примеры разборки
|
|||
|---|---|---|---|
|
#18+
Denis Popov Denis Popovможет есть способ получить все namespace'ы из документа? например, через xmlparser и xmldom: http://download-west.oracle.com/docs/cd/B10501_01/appdev.920/a96621/adx20ppl.htm#1006936 А как тогда преобразовать мой XMLType в dbms_xmldom.DOMDocument и обратно? Функция будет выглядеть примерно так: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2005, 15:31 |
|
||
|
XML в Oracle9i. Примеры разборки
|
|||
|---|---|---|---|
|
#18+
Flukky wrote: > А как тогда преобразовать мой XMLType в dbms_xmldom.DOMDocument и обратно? Не знаю, может и никак. Через dbms_xmldom я думал только получить namespace, а потом использовать в XMLType.extract(), потому и говорил о двойном разборе. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2005, 15:42 |
|
||
|
XML в Oracle9i. Примеры разборки
|
|||
|---|---|---|---|
|
#18+
Denis Popov Через dbms_xmldom я думал только получить namespace, а потом использовать в XMLType.extract(), потому и говорил о двойном разборе. Posted via ActualForum NNTP Server 1.3 Функции из пакета xdb.dbms_xmldom: Код: plaintext 1. 2. 3. 4. 5. 6. Какую из них использовать (DOMnode, DOMAttr, DOMElement), если на входе у меня параметр типа XMLType? Либо я совсем не в ту степь смотрю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2005, 16:20 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=33363794&tid=1886509]: |
0ms |
get settings: |
8ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
195ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
81ms |
get tp. blocked users: |
1ms |
| others: | 236ms |
| total: | 559ms |

| 0 / 0 |
