Python: Text nach xml-Tags parsen

OP #7151554
Lesenswert?

Hallo,
hier mein momentanes Sonntags-Rätsel zum mitknobeln:

ich habe hier xml-Files aus einer Quelle auf die ich keinen Einfluss 
habe.
Die Dateien werden von einem selbstgeschriebenen Python-Skript gelesen, 
geändert und abgespeichert (nutze ElementTree als xml-Lib). Läuft alles.

Leider ist das prettyprint der ursprünglichen Quelle völlig verkackt und 
die xml-Files sind zugemüllt mit whitespaces (diverse unnötige 
Linebreaks, Leerzeichen, Tabs). Die Dateien sind so kaum menschenlesbar. 
Für mein Skript kein Problem, fürs menschliche AUge durchaus. Und leider 
behält ElementTree  beim Speichern die ursprüngliche Formatierung bei, 
d.h. der Output meines Skriptes ist genause hässlich.
Da muss Abhilfe her.

Nun könnte ich relativ leicht das ganze File in einen String einlesen 
und sämtliche Linebreaks, Leerzeichen und Tabs rausfiltern. Nur: ich 
darf ja die Nutzdaten, also, die Daten zwischen zwei xml-Tags nicht 
ändern.
Wie löse ich das also elegant?
Gibts da ne kluge regex?

Die Fragestellung lautet versimplifiziert also:
Wie kann ich erkennen ob sich ein Zeichen innerhalb eines öffnenden und 
schließenden xml-Tags befindet?
In diesem Fall wäre das Zeichen Nutzdatum, muss also erhalten bleiben. 
Andernfalls kann das Zeichen gelöscht werden.
#7151706
Lesenswert?

M. M. schrieb:
> Leider ist das prettyprint der ursprünglichen Quelle völlig verkackt und
> die xml-Files sind zugemüllt mit whitespaces (diverse unnötige
> Linebreaks, Leerzeichen, Tabs).

Ich verstehe zwar, was Du sagst, aber Beispiele für die Daten und Deinen 
Code wären ganz nett, damit man sich vorstellen kann, was Du genau 
meinst.

> Die Dateien sind so kaum menschenlesbar.

Möglicherweise ist es eine Geschmackssache, aber ich persönlich halte 
XML-Dateien ohnehin nicht für menschenlesbar... ;-)

> Wie löse ich das also elegant?

Vielleicht wäre ein Anzeigeskript sinnvoll, das die Daten aus Deinen 
XMLs übersichtlich und schick formatiert anzeigen kann. Im Zweifel 
könnte es helfen, Deine XML-Dateien mit BeautifulSoup anstelle von 
ElementTree zu parsen, weil BS (meiner Meinung nach) hübschere Ausgaben 
erzeugen kann.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren