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

Нужно разобрать XML.

Вот что у меня получилось:
Код: 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.
WITH
  TXML AS (SELECT XMLType('<?xml version="1.0" encoding="Cp866"?>
                           <document>                            
                             <data>
                               <part number = "one">
                                 <client>
                                   <name>Клиент 1</name>
                                 </client>
                                 <client>
                                   <name>Клиент 2</name>
                                 </client>
                               </part>
                               <part number = "two">
                                 <client>
                                   <name></name>
                                 </client>
                                 <client>
                                   <name>Клиент 4</name>
                                 </client>
                               </part>
                             </data>
                           </document>') AS col_xml
          FROM DUAL)
SELECT TXML.col_xml.extract('/document/data/part/@number').getStringVal(), name
FROM TXML 
CROSS JOIN XMLTable('/document/data/part/client' PASSING TXML.col_xml COLUMNS
                    name VARCHAR2(100) PATH 'name')


Мне нужно:
part nameone Клиент 1one Клиент 2two NULLtwo Клиент 4

Как видно из результата, у меня идёт склеивание атрибутов.

Как правильно разобрать XML, чтобы атрибуты были раздельно?
...
Рейтинг: 0 / 0
Разбоh XML
    #39693943
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Начнем с того что EXTRACT deprecated да и тут не в тему.

Код: 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.
38.
39.
40.
41.
42.
43.
44.
45.
WITH
  TXML AS (SELECT  XMLType('<?xml version="1.0" encoding="Cp866"?>
                            <document>
                              <data>
                                <part number = "one">
                                  <client>
                                    <name>Client 1</name>
                                  </client>
                                  <client>
                                    <name>Client 2</name>
                                  </client>
                                </part>
                                <part number = "two">
                                  <client>
                                    <name></name>
                                  </client>
                                  <client>
                                    <name>Client 4</name>
                                  </client>
                                </part>
                              </data>
                            </document>') AS col_xml
             FROM  DUAL
          )
SELECT  part,
        name
 FROM      TXML
        CROSS JOIN
           XMLTABLE(
                    '/document/data/part/client'
                    PASSING TXML.col_xml
                    COLUMNS
                      part VARCHAR2(100) PATH './../@number',
                      name VARCHAR2(100) PATH '/name'
                   )
/

PART  NAME
----- ----------
one   Client 1
one   Client 2
two
two   Client 4

SQL> 



SY.
...
Рейтинг: 0 / 0
Разбоh XML
    #39694131
IMNO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо.

Можно ссылку на доку, чтобы посмотреть, что это за конструкция?
SY
Код: plsql
1.
 './../@number'



Первый раз сталкиваюсь с XML, даже не знаю, что гуглить.
...
Рейтинг: 0 / 0
Разбоh XML
    #39694135
dmdmdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Разбоh XML
    #39694143
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SYEXTRACT deprecated Этот .extract() не deprecated. А вот .getStringVal() по версии xml db developers является deprecated, хотя описание метода в plsql packages & types об этом молчит.
...
Рейтинг: 0 / 0
Разбоh XML
    #39694209
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IMNOПервый раз сталкиваюсь с XML, даже не знаю, что гуглить.
Если не знаете что гуглить - попробуйте начать с оригинала.
https://www.w3.org/standards/xml/

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


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