Wie werden Attribute in python beim Prettyprinting von xml eingezogen?

8

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

zurückgreifen     
Cheeso 13.10.2012, 17:56
quelle

1 Antwort

2

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.

    
Steen 01.03.2013, 10:41
quelle

Tags und Links