Ich muss Leerzeichen zwischen XML-Tags, z. wenn die ursprünglichen xml wie folgt aussehen:Crunching XML mit Python
<node1>
<node2>
<node3>foo</node3>
</node2>
</node1>
würde Ich mag das Endergebnis seiner bis auf einzelne Zeile knirschte:
<node1><node2><node3>foo</node3></node2></node1>
Bitte beachten Sie, dass ich nicht die Kontrolle über die xml habe Struktur, so sollte die Lösung generisch genug sein, um mit jedem gültigen XML umgehen zu können. Auch das XML könnte CDATA-Blöcke enthalten, die ich von diesem Crunching ausschließen und sie wie es ist lassen sollte.
Ich habe bis jetzt paar Ideen: (1) Parsen Sie das XML als Text und suchen Sie nach Anfang und Ende der Tags < und> (2) ein weiterer Ansatz ist das XML-Dokument zu laden und gehen Knoten für Knoten und Drucken Sie ein neues Dokument durch Verketten der Tags.
Ich denke, beide Methoden würden funktionieren, aber ich möchte das Rad hier nicht neu erfinden, also gibt es vielleicht eine Python-Bibliothek, die schon so etwas macht? Wenn nicht, dann irgendwelche Probleme/Fallstricke zu beachten, wenn Sie meine eigenen Cruncher? Irgendwelche Empfehlungen?
EDIT Vielen Dank für Antworten/Vorschläge, sowohl Triptychon der und Van Gale Lösungen für mich arbeiten und tun genau das, was ich will. Ich wünschte, ich könnte beide Antworten akzeptieren.
Ich glaube nicht, dass dies völlig richtig ist, weil es gültige Leerzeichen am Ende des Inhalts entfernt. Aber es hat mich daran erinnert, dass mein Schnipsel mit CDATA das Falsche macht, also danke dafür! :) –
Danke! Das macht genau das, was ich wollte –
Aber das ändert das Dokument! Es ist kein gleiches XML-Dokument mehr ... –