Angenommen, ich habe XML wie folgt:
%Vor%Der erste Elementname mit all seinen Attributen erscheint in einer Zeile.
Ich habe gesehen, wie man den Elementbaum mit Hilfe von lxml mit Code wie diesem hübsch bedruckt:
%Vor%... aber damit wird jedes Element in einer Zeile angezeigt.
Gibt es eine Zauberformel, um dem hübschen Drucker zu sagen, dass er zwischen den Elementattributen Zeilenumbrüche einfügen soll, damit zum Beispiel die Zeilenlänge 80 Zeichen nicht überschreitet?
Ich möchte, dass das Ergebnis ungefähr so aussieht:
%Vor% ps: Ich möchte nicht auf subprocess
und xmllint
lxml
hat eine hübsche Druckfunktion eingebaut: hier ist ein Tutorial , das verschiedene Möglichkeiten zum Drucken von XML beschreibt. Es hat einige Einschränkungen (Einschränkungen in den XML-Spezifikationen, nach lxml), obwohl.
Diese stackoverflow-Frage hat mehrere Antworten mit mehr oder weniger hacky Lösungen für den Druck xml, und ich denke, dass Sie zumindest die regexp-basierte Antwort nach Ihren Bedürfnissen modellieren können.
Fredrik Lundh (von ElementTree fame) hat eine sehr Low-Level-Beschreibung für Drucken xml , die Sie können auch die Attribute newline und indent anpassen.
Tags und Links python pretty-print lxml