06-01-2019, 09:06 PM
Buenas.
Tengo un pequeño problema al procesar un XML desde Python y espero que alguien pueda echarme un cable. Simplificaré mi ejercicio para que nadie pierda mucho tiempo con esto.
Creé este fichero XML:
Y también el siguiente código Python:
Después de ejecutar este código, el fichero XML queda así:
Como se puede ver en la 7ª línea, el campo ciudad se me inserta pero me rompe toda la estructura de indentación. ¿Alguien tiene alguna idea de cómo arreglar esto de una forma fácil? Me gustaría conservar una estructura limpia y legible en el XML después de procesarlo para que cualquiera pueda leerlo y modificarlo directamente desde el fichero.
Millones de gracias.
Tengo un pequeño problema al procesar un XML desde Python y espero que alguien pueda echarme un cable. Simplificaré mi ejercicio para que nadie pierda mucho tiempo con esto.
Creé este fichero XML:
Código:
<Equipo>
<ListaPersonas>
<Persona>
<Dni>11111111A</Dni>
<Nombre>Ana</Nombre>
<Sexo>Femenino</Sexo>
</Persona>
<Persona>
<Dni>22222222B</Dni>
<Nombre>Antonio</Nombre>
<Sexo>Masculino</Sexo>
</Persona>
<Persona>
<Dni>33333333C</Dni>
<Nombre>Marta</Nombre>
<Sexo>Femenino</Sexo>
</Persona>
</ListaPersonas>
</Equipo>
Y también el siguiente código Python:
Código:
from xml.etree import ElementTree
arbolXML = ElementTree.parse("Fichero.xml");
equipoXML = arbolXML.getroot();
listPersonasXML = equipoXML[0];
primeraPersonaXML = listPersonasXML[0];
unidad = ElementTree.Element("Ciudad");
unidad.text = "Madrid";
primeraPersonaXML.append(unidad);
arbolXML.write("Fichero.xml");
Después de ejecutar este código, el fichero XML queda así:
Código:
<Equipo>
<ListaPersonas>
<Persona>
<Dni>11111111A</Dni>
<Nombre>Ana</Nombre>
<Sexo>Femenino</Sexo>
<Ciudad>Madrid</Ciudad></Persona>
<Persona>
<Dni>22222222B</Dni>
<Nombre>Antonio</Nombre>
<Sexo>Masculino</Sexo>
</Persona>
<Persona>
<Dni>33333333C</Dni>
<Nombre>Marta</Nombre>
<Sexo>Femenino</Sexo>
</Persona>
</ListaPersonas>
</Equipo>
Como se puede ver en la 7ª línea, el campo ciudad se me inserta pero me rompe toda la estructura de indentación. ¿Alguien tiene alguna idea de cómo arreglar esto de una forma fácil? Me gustaría conservar una estructura limpia y legible en el XML después de procesarlo para que cualquiera pueda leerlo y modificarlo directamente desde el fichero.
Millones de gracias.