[Kde-devel-es] QDom y eliminar elementos
Carles Pina i Estany
carles at pinux.info
Sun Feb 27 17:56:10 CET 2005
Hola,
Parece que estos dias sólo hago que enviar preguntas a la lista (y
además de Qt), mis disculpas... ya habrá épocas que contestaré :-)
Voy al grano: tengo una aplicación que trata con ficheros XML usando
QDom pero me daba unos problemas reemplazando unos elementos (y
eliminando1) , y he hecho una prueba sencilla aparte.
Tengo este fichero .xml de prueba (ya sé que no es perfecto):
<!DOCTYPE agenda>
<agenda>
<persona tlf="adeu" name="carles" />
<persona tlf="hola" name="hola" />
</agenda>
Para probar de guardar nombre-tlf.
Desde la aplicación sin problemas puedo leer todo, buscar, o añadir.
Para empezar a jugar lo abro mediante:
QDomDocument doc;
QFile file("test.xml");
doc.setContent(&file);
file.close();
Para eliminar elementos que NO funciona hago:
--------
QDomElement root=doc.documentElement();
QDomElement cn_new=doc.createElement("persona");
QDomNode t;
cn_new=doc.createElement("persona");
cn_new.setAttribute("name",nomnou);
cn_new.setAttribute("tlf",tlfnou);
t=root.removeChild(cn_new);
printf("t es nul? %d\n",t.isNull());
--------
Da que es null (1)
Sin embargo, para añadir elementos:
--------
printf("Afegir\n");
QDomElement root=doc.documentElement();
QDomElement cn_new=doc.createElement("persona");
cn_new=doc.createElement("persona");
cn_new.setAttribute("name",nomnou);
cn_new.setAttribute("tlf",tlfnou);
root.appendChild(cn_new);
--------
El código es el mismo cambiando appendChild por removeChild.
Seguro que nomnou y tlfnou son exactamente lo mismo (viene de una
editLine y no la he modificado).
El remplaceChild tampoco va (parece de hecho que no encuentra el Child),
y el insertAfter, etc. tampoco va.
Sin embargo el añadir funciona correctamente.
Alguien ve algo incorrecto? Yo creo que tiene que ser un fallo garrafal
y muy tonto :-) y que ahora no lo veo, porqué vaya, no puede ser
complicado...
1000 gracias!
--
Carles Pina i Estany GPG id: 0x8CBDAE64
http://pinux.info
More information about the Kde-devel-es
mailing list