Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Trabajar con un gran XML (https://www.clubdelphi.com/foros/showthread.php?t=67585)

Alejo15x 24-04-2010 02:48:43

Trabajar con un gran XML
 
Buenas!

Lo que os voy a pedir es urgente! Llevo meses tratando de decifrarlo y la verdad, no eh podido hacerlo funciònar!.

Poseo, 1 TListBox, 1 TEdit, y un TButton, y claro el XML.
El XML esta compuesto de la siguiente forma:

Código:

<?xml version="1.0" encoding="UTF-8"?>
<items>
    <item id="100" name="void" />
    <item id="2148" article="a" name="gold coin" plural="gold coins">
        <attribute key="weight" value="10" />
        <attribute key="worth" value="1" />
    </item>
</items>

Son 17000 lineas en total!. Algo muy grande debo decir!. Bueno, nesecito que al cargar la aplicaciòn agrege al TListBox el contenido del XML como del siguiente modo:

Código:

void
gold coin

Al dar click en void, en este caso el Index 0, obtenga el "id" que se encuentra en el XML, con ese respectivo nombre, que dicho ID valla al TEdit.
No se si me eh explicado, pero la verdad no tengo ni la mas minima idea de como hacerlo, por favor ignorais las "attribute, key" etc...

Un saludote!

manuc 24-04-2010 09:04:54

Hola Alejo15x,

Pues la verdad es que cargar 17.000 registros en un listBox, creo (opinión personal) que puede ser algo pesado para el listBox.

Para resolver tu problema, tendrías que encontrar algún componente que transformara tu XML, en un Dataset, una lista o algo así.

Creo que no es fácil de encontrar.

Hace poco, para un proyecto, tuve que importar un XML, con varios niveles al Software que estaba desarrollando.

Para esto me cree una clase que analizaba el XML y creaba una serie de ClientDataset (maestro-detalle) con el contenido del fichero.

Tenía pensado crear un componente con esta clase, para publicarlo.
En cuanto lo tenga, se los dejo colgado por aquí para quien lo necesite.

Un saludo.

Casimiro Notevi 24-04-2010 13:21:35

Cita:

Empezado por manuc (Mensaje 361789)
[..]Pues la verdad es que cargar 17.000 registros en un listBox, creo (opinión personal) que puede ser algo pesado para el listBox.[..]

Desde luego, son muchos. Mejor cargarlos en un tclientdataset que asocies mediante un tdatasource a un tdbgrid, por ejemplo.


La franja horaria es GMT +2. Ahora son las 20:01:25.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi