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
Danke für die Erklärung, das hilft, das Verhalten des Parsers besser zu verstehen. Ich arbeite aktuell an der Strukturierung eines Lexikons, in dem unter anderem Begriffe wie Suchmaschinenoptimierung (https://www.sumasearch.ch/lexikon/definition-suchmaschinenoptimierung/ ) technisch und inhaltlich sauber aufbereitet werden sollen. Mir ging es dabei vor allem um die Frage, ob man bei automatisch generiertem HTML den ursprünglichen Whitespace gezielt erhalten kann, um den Quellcode lesbarer zu halten, ohne das Parsing oder Rendering zu beeinträchtigen. Der Hinweis auf Pretty-Printer war hilfreich; ich teste verschiedene Ansätze (z. B. html.parser und lxml) und freue mich über Beispiele, wie sich Whitespace gezielt steuern lässt. Viele Grüsse Šukri Jusuf
Am 08.10.25 um 12:44 schrieb Sukri Jusuf:
Danke für die Erklärung, das hilft, das Verhalten des Parsers besser zu verstehen. Ich arbeite aktuell an der Strukturierung eines Lexikons, in dem unter anderem Begriffe wie Suchmaschinenoptimierung (https://www.sumasearch.ch/lexikon/definition-suchmaschinenoptimierung/ ) technisch und inhaltlich sauber aufbereitet werden sollen.
Mir ging es dabei vor allem um die Frage, ob man bei automatisch generiertem HTML den ursprünglichen Whitespace gezielt erhalten kann, um den Quellcode lesbarer zu halten, ohne das Parsing oder Rendering zu beeinträchtigen. Der Hinweis auf Pretty-Printer war hilfreich; ich teste verschiedene Ansätze (z. B. html.parser und lxml) und freue mich über Beispiele, wie sich Whitespace gezielt steuern lässt.
Für html Seiten Erzeugung ( aus html-Vorlagen ) verwende ich eigene Python Programme. Wenn ich die ursprünglichen Whitespace erhalten wollte, würde ich ein entsprechend vom Programm einbauen lassen. -- <http://www.hermann-riemann.de> bzw.: <https://www.hermann-riemann.eu/de>
participants (5)
-
<a>b</a> -
Diez B. Roggisch -
Hermann Riemann -
michel.koller@globonet.ch -
Sukri Jusuf