Necesito eliminar espacios en blanco entre etiquetas xml, p. Ej. si el XML original se parece a:Crunching xml with python
<node1>
<node2>
<node3>foo</node3>
</node2>
</node1>
Me gustaría que el resultado final para ser ha procesado a una sola línea:
<node1><node2><node3>foo</node3></node2></node1>
Tenga en cuenta que no voy a tener el control sobre el xml estructura, por lo que la solución debe ser lo suficientemente genérica como para poder manejar cualquier xml válido. Además, el xml podría contener bloques CDATA, que yo necesitaría excluir de este al procesar y dejarlos como están.
Tengo un par de ideas hasta ahora: (1) analizar el xml como texto y buscar el inicio y el final de las etiquetas < y> (2) otro enfoque es cargar el documento xml e ir nodo por nodo y imprima un documento nuevo al concatenar las etiquetas.
Creo que cualquiera de los dos métodos funcionaría, pero prefiero no reinventar la rueda aquí, entonces ¿puede que haya una biblioteca de Python que ya haga algo como esto? Si no, ¿hay algún problema que deba tener en cuenta al implementar mi propio cruncher? ¿Alguna recomendación?
EDITAR Gracias a todos por respuestas/sugerencias, tanto Tríptico de soluciones y de Van Gale funciona para mí y hacer exactamente lo que quiero. Ojalá pudiera aceptar ambas respuestas.
No creo que esto sea correcto porque quitará espacios en blanco válidos al final de los contenidos. Pero, me recordó que mi fragmento hace lo incorrecto con CDATA, ¡así que gracias por eso! :) –
¡Gracias! Esto hace exactamente lo que yo quería –
¡Pero eso CAMBIA el documento! Ya no es un documento XML igual ... –