powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / как соединить два хмл?
11 сообщений из 11, страница 1 из 1
как соединить два хмл?
    #39730305
ora1234
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
есть один:
Код: plsql
1.
2.
3.
<b Z1 = "1" Z2 = "2" ... ZN="N">
	<c L1 ="1" .. LN = "N" ></c>
</b>



есть второй :
Код: plsql
1.
2.
3.
<b H1 = "1" H2 = "2" ... HN="N">
	<c K1 ="1" .. KN = "N" ></c>
</b>



Надо получить:
Код: plsql
1.
2.
3.
<b Z1 = "1" Z2 = "2" ... ZN="N" H1 = "1" H2 = "2" ... HN="N">
	<c L1 ="1" .. LN = "N" K1 ="1" .. KN = "N"></c>
</b>



Как правильно это выполнить?
...
Рейтинг: 0 / 0
как соединить два хмл?
    #39730310
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Десериализовать, соединить и сериалиазовать.
...
Рейтинг: 0 / 0
как соединить два хмл?
    #39730314
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ora1234,

Все ноды уникальны?

regexp_substr + join + concat
...
Рейтинг: 0 / 0
как соединить два хмл?
    #39730315
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ora1234,

Какой должен быть результат для XML вида:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<trans>
 <tran a="1" b="2"/>
 <tran c="3" d="4"/>
</trans>

<trans>
 <tran e="5" f="6"/>
 <tran g="7" h="8"/>
 <tran i="9" j="10"/>
</trans>


?

Сформулируйте чётче, что на входе и что должно быть на выходе.
...
Рейтинг: 0 / 0
как соединить два хмл?
    #39730316
ora1234
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Elic, мне б примерчик простенький типа:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
-- Insert a node as a child of a node.
UPDATE warehouses SET warehouse_spec =
  XMLQuery('copy $tmp := . modify insert node
            <Spaces>300</Spaces>
            into $tmp/Warehouse/Parking
            return $tmp'
           PASSING warehouse_spec RETURNING CONTENT)
  WHERE warehouse_spec IS NOT NULL;


А в хэлпах нет, как объединять атрибуты двух хмл.
...
Рейтинг: 0 / 0
как соединить два хмл?
    #39730318
ora1234
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
env,
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
есть один
<trans f="1">
 <tran a="1" b="2"/>
 </trans>

есть второй
<trans m="1">
 <tran e="5" f="6"/>
 /trans>

должно получиться:
<trans f="1"  m="1" >
 <tran a="1" b="2 "e="5" f="6" />
 </trans>
...
Рейтинг: 0 / 0
как соединить два хмл?
    #39730323
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ora1234,

Для объединяемых узлов есть жёсткое ограничение на уровне xsd maxOccurs=1?
...
Рейтинг: 0 / 0
как соединить два хмл?
    #39730324
ora1234
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
env, про xsd разговора нет (т.е. это второй вопрос).
Если вы имеется ввиду допустимо ли так, например:
Код: plsql
1.
2.
3.
4.
<trans >
<tran a="1" b="2 />
<tran e="5" f="6" />
 </trans>


, то нет. Так соединять я умею. Я вот, как описал выше, не умею.
Мне надо так:
Код: plsql
1.
2.
3.
<trans >
<tran a="1" b="2 e="5" f="6"/>
 </trans>
...
Рейтинг: 0 / 0
как соединить два хмл?
    #39730327
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Каковы критерии уникальности?
Только имя ноды или есть учитываемые атрибуты?
Уровень (вложенность) учитывается?
...
Рейтинг: 0 / 0
как соединить два хмл?
    #39730328
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
2.
3.
4.
5.
6.
7.
xmlquery('
let $x := ($A,$B)/trans/@*
let $y := ($A,$B)/trans/tran/@*
return <trans>{$x}<tran>{$y}</tran></trans>
' passing xmltype('<trans f="1"><tran a="1" b="2"/></trans>') as a,
          xmltype('<trans m="1"><tran e="5" f="6"/></trans>') as b
returning content)
...
Рейтинг: 0 / 0
как соединить два хмл?
    #39730332
ora1234
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
-2-,
Спасибо.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / как соединить два хмл?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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