Oracle разбор XML | |
---|---|
S-type Сообщений: 2969 Дата регистрации: 24.04.2004 |
Предположим, есть XML файл. хочется из него вытащить данные. Выглядит примерно так:
|
Re: Oracle разбор XML | |
---|---|
S-type Сообщений: 2969 Дата регистрации: 24.04.2004 |
Есть другие XML:
Цитата: |
Re: Oracle разбор XML | |
---|---|
S-type Сообщений: 2969 Дата регистрации: 24.04.2004 |
Проблему решил так:
Но, как то это всё неправильно... Господа. Пожалуйста, подскажите - есть какой то другой метод, как распарсить подобный XML без replac-а? |
Re: Oracle разбор XML | |
---|---|
sphinx Автор Сообщений: 31179 Откуда: Каменск-Уральски Дата регистрации: 22.11.2006 |
Если "распарсить" в данном случае понимается как "загрузить данные из XML-файла в таблицу" - то есть XMLTOCURSOR() и XMLADAPTER, примеров по ним на форуме много.
------------------ "Veni, vidi, vici!"(с) |
Re: Oracle разбор XML | |
---|---|
S-type Сообщений: 2969 Дата регистрации: 24.04.2004 |
Нет, в таблицу не надо. И, вопрос не по VFP
|
Re: Oracle разбор XML | |
---|---|
sphinx Автор Сообщений: 31179 Откуда: Каменск-Уральски Дата регистрации: 22.11.2006 |
То есть работа с чистым Oracle, без VFP-клиента? Хм.. понятно.
Попробуй так:
------------------ "Veni, vidi, vici!"(с) Исправлено 3 раз(а). Последнее : sphinx, 13.05.16 22:44 |
Re: Oracle разбор XML | |
---|---|
sphinx Автор Сообщений: 31179 Откуда: Каменск-Уральски Дата регистрации: 22.11.2006 |
|
Re: Oracle разбор XML | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Правильно ругается - q0 в таком xml-е это просто АЛИАС, краткое обозначение пространства имён, которому принадлежит соответствующий элемент (узел или атрибут). Само пространство имён это URI типа хттп://www.w3.org/TR/html4/ или там хттп://mycompany.ru Поскольку писать это безобразие в каждом элементе xml нецелесообразно, придуманы эти самые префиксы/алиасы. В некотором узле пишется что дескать начиная с него и внутри считать q0 за хттп://mycompany.ru - и далее уже идентификаторы пишутся кратенько - как у тебя в примере q0:request Есть ещё такая забавная штука как пространство имён по умолчанию - т.е. даже просто cust из твоего первого примера это не просто cust, а cust из некоторого пространства имён (если оно заданно при помощи xmlns="хттп://чего-то-там") В XML парсерах существует понятие SelectionNamespaces - это как раз список пространств имён и соответствующих алиасов используемых в запросе. Синтаксис задания таковых как правило совпадает с собственно определением пространств имён в XML-ях, т.е. это строка вида xmlns:q0="хттп://mycompany.ru" В более менее свежем оракле пространства имён поддерживаются - это в частности второй параметр метода extract (точнее это 2-й параметр 2-й перегрузки этого метода ). Есть это и в других подобных методах типа XMLType и в "плоских SQL-ных" функциях, скажем EXTRACT(). В любом случае твой XML не будет корректным до тех пор пока там не появятся указания для "расшифровки" префиксов q0, q1 - а как только они появятся, ты уже сможешь и XPath писать с нужным уточнением P.S. Вариант с функцией XMLTable имеет право на жизнь, но и там никуда не деться от пространств имён При том задаются они там несколько по другому ------------------ WBR, Igor |
Re: Oracle разбор XML | |
---|---|
S-type Сообщений: 2969 Дата регистрации: 24.04.2004 |
При указании параметра namespace (функции extract) запрос стал работать.
Igor, спасибо за подсказку. |
Re: Oracle разбор XML | |
---|---|
sphinx Автор Сообщений: 31179 Откуда: Каменск-Уральски Дата регистрации: 22.11.2006 |
Ну, мне тоже пригодится. Игорю ------------------ "Veni, vidi, vici!"(с) |
© 2000-2024 Fox Club  |