powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Распарсить XML
4 сообщений из 4, страница 1 из 1
Распарсить XML
    #39912277
Synoptic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ, все привет!
Не могу распарсить XML данного вида. Перепробовал разные варианты, но пока без успеха. Прошу помощи!

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
with tmp as
 (select '<?xml version="1.0" encoding="UTF-8"?>
<item xmlns:ns1="http://abcd.ejb.app.aaa.bb.ru" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns1:itemBIG">
   <mainId>152545</mainId>
   <id2>
      <id3>6789</id3>
   </id2>
   <id4>03</id4>
</item><record>
   <Id>XD123</Id>
</record><Date>2019-01-02</Date>' sXML  from dual)

select t.*
  from tmp,
       XMLTable(xmlnamespaces('http://abcd.ejb.app.aaa.bb.ru' as "ns1",
                              'http://www.w3.org/2001/XMLSchema-instance' as "xsi",
                              'ns1:itemBIG' as "type"),
                '/record' passing XMLType(sXML) 
                columns 
                recordID  varchar2(40) path 'Id') t;
...
Рейтинг: 0 / 0
Распарсить XML
    #39912278
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Synoptic
XML данного вида
По данному виду это не xml.
...
Рейтинг: 0 / 0
Распарсить XML
    #39912279
Synoptic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-
По данному виду это не xml.
Вот и меня терзают смутные сомнения...
...
Рейтинг: 0 / 0
Распарсить XML
    #39912284
Synoptic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем, добавил костыль, работает:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
with tmp as
 (select '<?xml version="1.0" encoding="UTF-8"?>
<item xmlns:ns1="http://abcd.ejb.app.aaa.bb.ru" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns1:itemBIG">
   <mainId>152545</mainId>
   <id2>
      <id3>6789</id3>
   </id2>
   <id4>03</id4>
</item><record>
   <Id>XD123</Id>
</record><Date>2019-01-02</Date>' sXML  from dual)

select t.*
  from tmp ,
       XMLTable(xmlnamespaces('http://abcd.ejb.app.aaa.bb.ru' as "ns1",
                              'http://www.w3.org/2001/XMLSchema-instance' as "xsi",
                              'ns1:itemBIG' as "type"),
                '/ns1:itemBIG' passing XMLType(replace(replace(sXML, '<item', '<ns1:itemBIG'), 'itemBIG">', 'itemBIG"><item>')||'</ns1:itemBIG>') 
                columns 
                recordID  varchar2(40) path 'record/Id') t;
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Распарсить XML
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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