Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Как удалить какой-нибудь элемент из XML?  [new]
nord_tramper
Member

Откуда: Moscow
Сообщений: 181
Есть XML вида

<RoomMix xmlns:cmn="http://www.db.com/schemas/Common" xmlns="http://www.db.com/schemas/RoomMix">
	<RoomMixID>1</RoomMixID>
	<PropertyID>2</PropertyID>
	<Status>0</Status>
	<Description>Copy of dddd</Description>
	<Date>2007-06-15</Date>
	<Categories>
		<Items>
			<RoomMixCategoryID>1</RoomMixCategoryID>
			<Status>-1</Status>
			<Description>5</Description>
			<NumberOfRooms>2</NumberOfRooms>
			<OccupiedRoomNights>1</OccupiedRoomNights>
		</Items>
		<Items>
			<RoomMixCategoryID>2</RoomMixCategoryID>
			<Status>0</Status>
			<Description>1</Description>
			<NumberOfRooms>3</NumberOfRooms>
			<OccupiedRoomNights>0</OccupiedRoomNights>
		</Items>
	</Categories>
	<UserGroupID>60</UserGroupID>
	<HistoryVersion>0</HistoryVersion>
</RoomMix>

Как удалить из нее вот этот элемент
<Items>
			<RoomMixCategoryID>1</RoomMixCategoryID>
			<Status>-1</Status>
			<Description>5</Description>
			<NumberOfRooms>2</NumberOfRooms>
			<OccupiedRoomNights>1</OccupiedRoomNights>
		</Items>
17 июл 07, 17:49    [4400303]     Ответить | Цитировать Сообщить модератору
 Re: Как удалить какой-нибудь элемент из XML?  [new]
dummy_ora_dbd
Guest
nord_tramper
Есть XML вида

...
Как удалить из нее вот этот элемент
<Items>
			<RoomMixCategoryID>1</RoomMixCategoryID>
			<Status>-1</Status>
			<Description>5</Description>
			<NumberOfRooms>2</NumberOfRooms>
			<OccupiedRoomNights>1</OccupiedRoomNights>
		</Items>

Есть deleteXML.
Проверить негде, но вроде то...
17 июл 07, 19:46    [4400779]     Ответить | Цитировать Сообщить модератору
 Re: Как удалить какой-нибудь элемент из XML?  [new]
Volder
Member

Откуда: Москва
Сообщений: 474
dummy_ora_dbd
Есть deleteXML.
Проверить негде, но вроде то...


то-то

SQL> with t as (select '<RoomMix xmlns:cmn="http://www.db.com/schemas/Common" xmlns="http://www.db.com/schemas/RoomMix">
  2  	<RoomMixID>1</RoomMixID>
  3  	<PropertyID>2</PropertyID>
  4  	<Status>0</Status>
  5  	<Description>Copy of dddd</Description>
  6  	<Date>2007-06-15</Date>
  7  	<Categories>
  8  		<Items>
  9  			<RoomMixCategoryID>1</RoomMixCategoryID>
 10  			<Status>-1</Status>
 11  			<Description>5</Description>
 12  			<NumberOfRooms>2</NumberOfRooms>
 13  			<OccupiedRoomNights>1</OccupiedRoomNights>
 14  		</Items>
 15  		<Items>
 16  			<RoomMixCategoryID>2</RoomMixCategoryID>
 17  			<Status>0</Status>
 18  			<Description>1</Description>
 19  			<NumberOfRooms>3</NumberOfRooms>
 20  			<OccupiedRoomNights>0</OccupiedRoomNights>
 21  		</Items>
 22  	</Categories>
 23  	<UserGroupID>60</UserGroupID>
 24  	<HistoryVersion>0</HistoryVersion>
 25  </RoomMix>' str from dual)
 26  --
 27  select deletexml(xmltype(str),'//Items[RoomMixCategoryID/text()=1]','xmlns:cmn="http://www.db.com/schemas/Common" xmlns="http://www.db.com/schemas/RoomMix').extract('/*') from t
 28  /

DELETEXML(XMLTYPE(STR),'//ITEM
--------------------------------------------------------------------------------
<RoomMix xmlns:cmn="http://www.db.com/schemas/Common" xmlns="http://www.db.com/schemas/RoomMix">
  <RoomMixID>1</RoomMixID>
  <PropertyID>2</PropertyID>
  <Status>0</Status>
  <Description>Copy of dddd</Description>
  <Date>2007-06-15</Date>
  <Categories>
    <Items>
      <RoomMixCategoryID>2</RoomMixCategoryID>
      <Status>0</Status>
      <Description>1</Description>
      <NumberOfRooms>3</NumberOfRooms>
      <OccupiedRoomNights>0</OccupiedRoomNights>
    </Items>
  </Categories>
  <UserGroupID>60</UserGroupID>
  <HistoryVersion>0</HistoryVersion>
</RoomMix>
17 июл 07, 20:24    [4400888]     Ответить | Цитировать Сообщить модератору
 Re: Как удалить какой-нибудь элемент из XML?  [new]
nord_tramper
Member

Откуда: Moscow
Сообщений: 181
Спасибо. Понял.
18 июл 07, 12:23    [4402939]     Ответить | Цитировать Сообщить модератору
 Re: Как удалить какой-нибудь элемент из XML?  [new]
nord_tramper
Member

Откуда: Moscow
Сообщений: 181
Маленькое уточнение - это для десятки, насколько я понял
18 июл 07, 12:30    [4403000]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить