XML -> DataSet -> DataGrid

11/08/2005 - 00:09 por Lord | Informe spam
Gente, estoy loco ya. He buscao en mil sitios y nada :(.

A ver, tengo un fichero XML. Lo leo en un DataSet y luego asocio ese
DataSet a un DataGrid.
Ahora el problema es que cuando quiero visualizar uno de los elementos
del XML, lo que me hace es que me visualiza todos los elementos, en
lugar de los que pertenecen a un elemento en particular.

Me explico, que no me he enterao ni yo, jeje:

<bd>
<relaciones>

<relación nombre="rel1">
<atributo nombre="atr1.1"/>
<atributo nombre="atr1.2"/>
<atributo nombre="atr1.3"/>
</relación>

<relación nombre="rel2">
<atributo nombre="atr2.1"/>
<atributo nombre="atr2.2"/>
<atributo nombre="atr2.3"/>
</relación>

</relaciones>
</bd>

Si ahora yo quiero visualizar en el DataGrid los atributos de la
relación "rel1", el problema que tengo es que me muestra todos los
atributos de todas las relaciones.

Os pongo el código que llevo, que seguro que está mal. No os asusteis
mucho.

datos = new DataSet();

datos.ReadXmlSchema("esquema.xsd");
datos.ReadXml("ejemplo.xml");

grid.DataSource = datos;
grid.NavigateTo(0, "atributo");


Llevo toda la tarde mirando la documentación y no encuentro respuesta.
Ayuda, please :D.

Gracias, people.

Preguntas similare

Leer las respuestas

#1 Braulio Diez
11/08/2005 - 08:24 | Informe spam
Hola,

Para importar un XML a un DataSet tienes que adherirte a los formatos que
soporta el dataset, en uno usas el contenido entre tags para poner el
contenido de tus campos, y en el otro los atributos. Hace un tiempo trabaje
un poco con ello, ... pero tendría que repasarlo.

Un primer paso para ver donde está el problema, es decirle al dataset que
al leer el XML te infiera el esquema de tablas (creo que la opción se llama
inferSchema o algo así), así puedes ver que es lo que él interpreta de tu XML.

Aquí te paso unos links que te hablan del formato XML que soporta un
dataset, intenta primero trabajar con los ejemplos y poner un XML que cumpla
estas especificaciones, y despues a ver como se adapta al tuyo (si tuvieras
que transformarlo, puedes usar XSL).

Te paso unos links:

http://msdn.microsoft.com/library/d...tables.asp

http://msdn.microsoft.com/library/d...tables.asp

http://msdn.microsoft.com/library/d...tables.asp

http://msdn.microsoft.com/library/d...tables.asp


http://msdn.microsoft.com/library/d...tables.asp

Buena suerte
Braulio

/// --
/// Braulio Díez
/// Desarrollador C#
/// Málaga - España
// --


"Lord" escribió:

Gente, estoy loco ya. He buscao en mil sitios y nada :(.

A ver, tengo un fichero XML. Lo leo en un DataSet y luego asocio ese
DataSet a un DataGrid.
Ahora el problema es que cuando quiero visualizar uno de los elementos
del XML, lo que me hace es que me visualiza todos los elementos, en
lugar de los que pertenecen a un elemento en particular.

Me explico, que no me he enterao ni yo, jeje:

<bd>
<relaciones>

<relación nombre="rel1">
<atributo nombre="atr1.1"/>
<atributo nombre="atr1.2"/>
<atributo nombre="atr1.3"/>
</relación>

<relación nombre="rel2">
<atributo nombre="atr2.1"/>
<atributo nombre="atr2.2"/>
<atributo nombre="atr2.3"/>
</relación>

</relaciones>
</bd>

Si ahora yo quiero visualizar en el DataGrid los atributos de la
relación "rel1", el problema que tengo es que me muestra todos los
atributos de todas las relaciones.

Os pongo el código que llevo, que seguro que está mal. No os asusteis
mucho.

datos = new DataSet();

datos.ReadXmlSchema("esquema.xsd");
datos.ReadXml("ejemplo.xml");

grid.DataSource = datos;
grid.NavigateTo(0, "atributo");


Llevo toda la tarde mirando la documentación y no encuentro respuesta.
Ayuda, please :D.

Gracias, people.


Respuesta Responder a este mensaje
#2 Lord
11/08/2005 - 12:19 | Informe spam
Braulio,

yo ya le estoy dando de comer al DataSet con el XSD que yo he creado
definiendo la estructura del XML, así que no creo que tenga que
inferirlo él, porque ya se lo estoy dando masticadito yo. Así que no
creo que sea ése el problema.

Muchas gracias de todas formas ;).
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida