powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / парсинг xml через ыйд
6 сообщений из 6, страница 1 из 1
парсинг xml через ыйд
    #39620004
imeriks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.

Помогите пожалуйста с парсингом простого xml выражения:

xmltype('
<root>
<row>
<col>v11</col>
<col>v12</col>
<col>v13</col>
<col>v14</col>
</row>
<row>
<col>v21</col>
<col>v22</col>
<col>v23</col>
<col>v24</col>
</row>
</root>
)

Нужно получить выборку вида:

C1 C2 C3 C4
---- ---- ---- ----
v11 v12 v13 v14
v21 v22 v23 v24

У меня пока получается только вот так:

select a.*
from
(
select extractvalue(column_value, '/*') as col
from table(xmlsequence(xmltype('<?xml version = "1.0"?>
<root>
<row>
<col>v11</col>
<col>v12</col>
<col>v13</col>
<col>v14</col>
</row>
<row>
<col>v21</col>
<col>v22</col>
<col>v23</col>
<col>v24</col>
</row>
</root>').extract('/root/row/col')))
) a

А таким запросом выходит все наоборот - 1 колонка и 8 строк
...
Рейтинг: 0 / 0
парсинг xml через ыйд
    #39620033
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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.
36.
37.
with t as (
           select xmltype('
<root>
<row>
<col>v11</col>
<col>v12</col>
<col>v13</col>
<col>v14</col>
</row>
<row>
<col>v21</col>
<col>v22</col>
<col>v23</col>
<col>v24</col>
</row>
</root>'
) xmldoc from dual
)
select  x.*
  from  t,
        xmltable(
                 '/root/row'
                 passing xmldoc
                 columns
                   c1 varchar2(3) path '/row/col[1]',
                   c2 varchar2(3) path '/row/col[2]',
                   c3 varchar2(3) path '/row/col[3]',
                   c4 varchar2(3) path '/row/col[4]'
                ) x
/

C1  C2  C3  C4
--- --- --- ---
v11 v12 v13 v14
v21 v22 v23 v24

SQL> 



SY.
...
Рейтинг: 0 / 0
парсинг xml через ыйд
    #39620049
imeriks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Черт, как только я не пытался сегодня это сделать)
Спасибо Вам большое!
...
Рейтинг: 0 / 0
парсинг xml через ыйд
    #39620050
imeriks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SY[src oracle]

xmltable(
'/root/row'
passing xmldoc
columns
c1 varchar2(3) path '/row/col[1]',
c2 varchar2(3) path '/row/col[2]',
c3 varchar2(3) path '/row/col[3]',
c4 varchar2(3) path '/row/col[4]'
) x


А можете вкратце объяснить что происходит внутри xmltable и как это работает, хочется понять.
Заранее спасибо.
...
Рейтинг: 0 / 0
парсинг xml через ыйд
    #39620074
dmdmdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
парсинг xml через ыйд
    #39620154
imeriks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dmdmdm,

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


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