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.
Möchtest du knobeln oder möchtest du das Problem lösen? Was spricht gegen ein erneutes Pretty Print in deinem Skript? Ich würde da nicht selber was bauen und dann vielleicht einen Spezialfall übersehen wenn's das schon fertig gibt.
M. M. schrieb: > Die Fragestellung lautet versimplifiziert also: > Wie kann ich erkennen ob sich ein Zeichen innerhalb eines öffnenden und > schließenden xml-Tags befindet? Alle Zeichen sind entweder Teil eines Tags oder befinden sich dazwischen.
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.