HTML-Datei auslesen, ändern, schreiben der Code ist onBlock
Guten Tag Ich schreibe ein Skript welches eine HTML-Datei öffnet, ausliesst nd bei allen IMG-Tags das Attribut alt mit Text erweitert. Das funktioniert ganz gut, aber bei der neugeschriebene Datei ist der HTML-Code danch ganz am Block, alle Leeren Zeilen und Leerzeichen sind verschwunden. Ich möchte aber das die Datei danach gleich aussieht wie bevor Sie gelesen wurde. Ich vermute das ich da was mit dem Schreiben der Datei nicht richtig mache, weis aber nicht was Was mache ich da Falsch? def OnAlt(self, event): for file in DirectoryWalker("."): try: html = open(file).read() parser = aHTMLParser() parser.feed(html) parser.close() html = parser.res open(file, 'w').write(html) print file except: print "diese datei konnte nicht geöffnet werden" print "fertig mit alt ändern" Danke für jede Hilfe Michel Koller Web Developer dipl.Webmaster ZBW ----------------------------------------- GLOBONET GmbH Tel +41 (0)71 914 44 00 Fax +41 (0)71 914 44 19 Email <mailto:michel.koller@globonet.ch> michel.koller@globonet.ch URL <http://www.globonet.ch> www.globonet.ch ----------------------------------------- _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
Am Thursday, 30. June 2005 19:01 schrieb michel.koller@globonet.ch:
Guten Tag
Ich schreibe ein Skript welches eine HTML-Datei öffnet, ausliesst nd bei allen IMG-Tags das Attribut alt mit Text erweitert. Das funktioniert ganz gut, aber bei der neugeschriebene Datei ist der HTML-Code danch ganz am Block, alle Leeren Zeilen und Leerzeichen sind verschwunden. Ich möchte aber das die Datei danach gleich aussieht wie bevor Sie gelesen wurde.
Ich vermute das ich da was mit dem Schreiben der Datei nicht richtig mache, weis aber nicht was
Was mache ich da Falsch?
def OnAlt(self, event): for file in DirectoryWalker("."): try: html = open(file).read() parser = aHTMLParser() parser.feed(html) parser.close() html = parser.res open(file, 'w').write(html) print file except: print "diese datei konnte nicht geöffnet werden" print "fertig mit alt ändern"
Das ist zwar Code und damit ein guter Start -- aber da wir weder wissen was aHTMLParser() zurückgibt kann man dazu nix sagen. Aber generell schon: Der whitespace zwischen html tags (heisst auch "insignifikant") wird von xml/html-parsern gerne überlesen bzw. nur auf "Anfrage" rausgegeben. Denn er ist eben unerheblich in allen Tags, die kein #PCData oder ähnliches erlauben. Wenn dein Problem ist das du wieder lesbarkeit herstellen willst, dann besteht die einfache Lösung darin deinen generierten code duch einen html pretty-printer zu jagen. Davon gibt's genug, google hilft wie immer. Wenn es aber _genau_ der whitespace sein soll, dann musst du das deinem Parser mitteilen - dazu müssen wir aber wissen, was dein parser genau ist. MfG Diez _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
participants (2)
-
Diez B. Roggisch
-
michel.koller@globonet.ch