Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Парсинг XML / 3 сообщений из 3, страница 1 из 1
27.09.2021, 12:04
    #40100172
RADDIM
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсинг XML
Добрый день,
Прошу подсказать.
Есть XML, в которой есть 2 блока. ExistingContracts и TerminatedContracts.
Внутренние элементы блоков одинаковые (формат).


Пример

Код: 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.
with ex as
 (select xmltype('<Root>
<ExistingContracts>
<Contract>
<AgreementNumber value="XXX"/>
</Contract>
</ExistingContracts>
<TerminatedContracts>
<Contract>
<AgreementNumber value="YYY"/>
</Contract>
</TerminatedContracts>
</Root>') xml_ex
    from dual)
select *
  from ex,
       xmltable('/Root/ExistingContracts/Contract' passing ex.xml_ex
                columns agreementnumber varchar2(4000) path
                'AgreementNumber/@value') t_parse
union all
select *
  from ex,
       xmltable('/Root/TerminatedContracts/Contract' passing ex.xml_ex
                columns agreementnumber varchar2(4000) path
                'AgreementNumber/@value') t_parse



Как видим что бы распарсить я использую UNION ALL.

Я хотел бы не использовать UNION ALL. А обойтись один селектом.
Что то наподобие:
Код: plsql
1.
2.
3.
select *
  from ex, xmltable('/Root/ExistingContracts OR TerminatedContracts/Contract' --Вот здесь что то надо сделать. Не знаю возможно ли что то придумать
        passing ex.xml_ex columns agreementnumber varchar2(4000) path 'AgreementNumber/@value') t_parse
...
Рейтинг: 0 / 0
27.09.2021, 15:43
    #40100244
rpovarov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсинг XML
RADDIM,
'/Root/(ExistingContracts,TerminatedContracts)/Contract'
...
Рейтинг: 0 / 0
28.09.2021, 05:50
    #40100365
RADDIM
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсинг XML
rpovarov
RADDIM,
'/Root/(ExistingContracts,TerminatedContracts)/Contract'


Спасибо большое.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Парсинг XML / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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