Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Como recuperar valores de un XML !!

Estas en el tema de Como recuperar valores de un XML !! en el foro de SQL Server en Foros del Web. Hola Foreros !!! Veréis... estoy un poco desesperado, así que espero podáis ayudarme con un pequeño problema que me está llevando por la calle de ...
  #1 (permalink)  
Antiguo 17/01/2013, 16:21
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 11 meses
Puntos: 7
Como recuperar valores de un XML !!

Hola Foreros !!!

Veréis... estoy un poco desesperado, así que espero podáis ayudarme con un pequeño problema que me está llevando por la calle de la amargura...

Estoy intentando recuperar dos campos de un simple XML, pero por más que lo intento no soy capaz de recuperarlos. Si soy capaz de recuperar atributos de los nodos, pero... lo que quiero es conseguir el "innerText".

Veréis:

Código:
DECLARE @PRUEBA AS XML
SET @PRUEBA = '<ROOT>
					<CLIENTES>
						<CLIENTE>
							<EDAD>19</EDAD>
							<NOMBRE>Carlos</NOMBRE>
						</CLIENTE>
					</CLIENTES>					
			   </ROOT>'

SELECT CLIENTES.Nodo.value('@EDAD','INT') AS Edad, 
       CLIENTES.Nodo.value('@NOMBRE','VARCHAR(20)') AS Nombre
FROM
	   @PRUEBA.nodes('/ROOT/CLIENTES/CLIENTE') AS CLIENTES (Nodo)
El Nombre y la Edad me salen NULL.

¿Saben como puedo hacer para que me devuelva los valores de los nodos???

Estaré muy agradecido. : )
__________________
Charlie.
  #2 (permalink)  
Antiguo 17/01/2013, 16:44
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Como recuperar valores de un XML !!

Código SQL:
Ver original
  1. DECLARE @PRUEBA AS XML
  2. SET @PRUEBA = '<ROOT>
  3.                     <CLIENTES>
  4.                         <CLIENTE>
  5.                             <EDAD>19</EDAD>
  6.                             <NOMBRE>Carlos</NOMBRE>
  7.                         </CLIENTE>
  8.                     </CLIENTES>                
  9.                </ROOT>'
  10.  
  11. SELECT CLIENTES.Nodo.VALUE('(/ROOT/CLIENTES[1]/CLIENTE[1]/EDAD)[1]','int') AS Edad,
  12.        CLIENTES.Nodo.VALUE('(/ROOT/CLIENTES[1]/CLIENTE[1]/NOMBRE)[1]','varchar(200)') AS Nombre
  13. FROM
  14.        @PRUEBA.nodes('/ROOT/CLIENTES/CLIENTE') AS CLIENTES (Nodo)

saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 17/01/2013, 17:15
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 11 meses
Puntos: 7
Respuesta: Como recuperar valores de un XML !!

Muchísimas Gracias, de verdad !!!
__________________
Charlie.
  #4 (permalink)  
Antiguo 17/01/2013, 17:28
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Como recuperar valores de un XML !!

de nada un placer :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: select, xml, campos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:14.