Elementos XML con OPENXML

20/07/2006 - 21:58 por Rene Quintero | Informe spam
Hola a todos..es la primer vez que escribo..
Tengo una consulta, resulta que estoy trabajando con archivos XML, y he
podido obtener todos los atributos de un nodo, pero nunca he podido obtener
los elementos..
Por ejemplo:

<root>
<tienda id="1" direccion="Conocido"/>
<dueno>Fermin Gaxiola</dueno>
<dueno>Melissa la camisa<dueno>
<dueno>Gilberto Mendoza</dueno>
</root>

En el archivo anterior, puedo obtener el id y direccion de la tienda...pero
no he podido obtener los valores que estan dentro de los tags dueno..

alguien sabe como lograrlo...
Agradezco de antemano...

Rene Quintero

Preguntas similare

Leer las respuestas

#1 Salvador Ramos
20/07/2006 - 21:21 | Informe spam
Hola,

Te recomiendo que bajes el PDF del capítulo 16 del libro "SQL Server 2000:
programción con ejemplos", lo tienes en www.sqlserverbyexample.com
El link directo es
http://www.sqlserverbyexample.com/XMLConSQL.pdf
Allí tienes la solución

Bueno, te recomiendo también que compres el libro, está muy bien :-)
Y espero que te animes a participar por aqui.

Un saludo
Salvador Ramos
Murcia - España

[Microsoft MVP SQL Server]
www.helpdna.net (información sobre SQL Server y .NET)


"Rene Quintero" escribió en el mensaje
news:
Hola a todos..es la primer vez que escribo..
Tengo una consulta, resulta que estoy trabajando con archivos XML, y he
podido obtener todos los atributos de un nodo, pero nunca he podido
obtener los elementos..
Por ejemplo:

<root>
<tienda id="1" direccion="Conocido"/>
<dueno>Fermin Gaxiola</dueno>
<dueno>Melissa la camisa<dueno>
<dueno>Gilberto Mendoza</dueno>
</root>

En el archivo anterior, puedo obtener el id y direccion de la
tienda...pero no he podido obtener los valores que estan dentro de los
tags dueno..

alguien sabe como lograrlo...
Agradezco de antemano...

Rene Quintero


Respuesta Responder a este mensaje
#2 Alejandro Mesa
20/07/2006 - 21:50 | Informe spam
Rene,

Trata de cambiar el formato.

DECLARE @idoc int
DECLARE @doc varchar(1000)
SET @doc ='
<root>
<tienda id="1" direccion="Conocido-1">
<dueno nombre="Fermin Gaxiola"/>
<dueno nombre="Melissa la camisa"/>
<dueno nombre="Gilberto Mendoza"/>
</tienda>
<tienda id="2" direccion="Conocido-1">
<dueno nombre="Bill Gates"/>
<dueno nombre="Linda Gates"/>
</tienda>
</root>'

EXEC sp_xml_preparedocument @idoc OUTPUT, @doc

SELECT
*
FROM
OPENXML (@idoc, '/root/tienda/dueno', 1)
WITH (
[id] int '../@id',
[direccion] varchar(50) '../@direccion',
nombre varchar(50) '@nombre'
)

EXEC sp_xml_removedocument @idoc
go


"Rene Quintero" wrote:

Hola a todos..es la primer vez que escribo..
Tengo una consulta, resulta que estoy trabajando con archivos XML, y he
podido obtener todos los atributos de un nodo, pero nunca he podido obtener
los elementos..
Por ejemplo:

<root>
<tienda id="1" direccion="Conocido"/>
<dueno>Fermin Gaxiola</dueno>
<dueno>Melissa la camisa<dueno>
<dueno>Gilberto Mendoza</dueno>
</root>

En el archivo anterior, puedo obtener el id y direccion de la tienda...pero
no he podido obtener los valores que estan dentro de los tags dueno..

alguien sabe como lograrlo...
Agradezco de antemano...

Rene Quintero



Respuesta Responder a este mensaje
#3 Alejandro Mesa
20/07/2006 - 21:54 | Informe spam
DECLARE @idoc int
DECLARE @doc varchar(1000)
SET @doc ='
<root>
<tienda id="1" direccion="Conocido-1">
<dueno id="1" nombre="Fermin Gaxiola"/>
<dueno id="2" nombre="Melissa la camisa"/>
<dueno id="3" nombre="Gilberto Mendoza"/>
</tienda>
<tienda id="2" direccion="Conocido-2">
<dueno id="1" nombre="Bill Gates"/>
<dueno id="2" nombre="Linda Gates"/>
</tienda>
</root>'

EXEC sp_xml_preparedocument @idoc OUTPUT, @doc

SELECT
*
FROM
OPENXML (@idoc, '/root/tienda/dueno', 1)
WITH (
tienda_id int '../@id',
[direccion] varchar(50) '../@direccion',
dueno_id int '@id',
nombre varchar(50) '@nombre'
)

EXEC sp_xml_removedocument @idoc
go


AMB


"Alejandro Mesa" wrote:

Rene,

Trata de cambiar el formato.

DECLARE @idoc int
DECLARE @doc varchar(1000)
SET @doc ='
<root>
<tienda id="1" direccion="Conocido-1">
<dueno nombre="Fermin Gaxiola"/>
<dueno nombre="Melissa la camisa"/>
<dueno nombre="Gilberto Mendoza"/>
</tienda>
<tienda id="2" direccion="Conocido-1">
<dueno nombre="Bill Gates"/>
<dueno nombre="Linda Gates"/>
</tienda>
</root>'

EXEC sp_xml_preparedocument @idoc OUTPUT, @doc

SELECT
*
FROM
OPENXML (@idoc, '/root/tienda/dueno', 1)
WITH (
[id] int '../@id',
[direccion] varchar(50) '../@direccion',
nombre varchar(50) '@nombre'
)

EXEC sp_xml_removedocument @idoc
go


"Rene Quintero" wrote:

> Hola a todos..es la primer vez que escribo..
> Tengo una consulta, resulta que estoy trabajando con archivos XML, y he
> podido obtener todos los atributos de un nodo, pero nunca he podido obtener
> los elementos..
> Por ejemplo:
>
> <root>
> <tienda id="1" direccion="Conocido"/>
> <dueno>Fermin Gaxiola</dueno>
> <dueno>Melissa la camisa<dueno>
> <dueno>Gilberto Mendoza</dueno>
> </root>
>
> En el archivo anterior, puedo obtener el id y direccion de la tienda...pero
> no he podido obtener los valores que estan dentro de los tags dueno..
>
> alguien sabe como lograrlo...
> Agradezco de antemano...
>
> Rene Quintero
>
>
>
Respuesta Responder a este mensaje
#4 Rene Quintero
20/07/2006 - 23:44 | Informe spam
Si Alejandro, ya intente cambiar el formato y si funciona...el problema esta
en que el formato ya esta diseñado de esa manera,solo tengo que leer los
datos..
De todas formas gracias, y seguire buscando..
Respuesta Responder a este mensaje
#5 Alejandro Mesa
21/07/2006 - 14:52 | Informe spam
Rene,

Lo interesante de usar XML es poder recorrer la jerarquia en caso de tener
mas de una tienda. Si el archivo solo contiene una sola tienda, entonces
puedes usar:

SELECT
[text] as dueno
FROM
OPENXML (@idoc, '/root/tienda/dueno', 2)
where
[text] is not null

pero esto no funciona, como mencione antes, si tienes mas de una tienda,
pues no sabriamos que duenos estan asociados a que tienda.


AMB


"Rene Quintero" wrote:

Si Alejandro, ya intente cambiar el formato y si funciona...el problema esta
en que el formato ya esta diseñado de esa manera,solo tengo que leer los
datos..
De todas formas gracias, y seguire buscando..



Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida