[Python-de] HTML-Tags
Walter Dörwald
walter at livinglogic.de
Tue Sep 3 12:51:32 EDT 2002
Dirk Lannatewitz wrote:
> Hallo all,
>
> ich habe eine Datei. Der Ursprung war eine HTML-Datei mit einer Tabelle.
> Bis auf die Tabellenzeilen habe ich alles rausgelöscht. Nun habe ich
> allerhand Zeilen vom Format:
> <tr><td width=200 align=right valign=top bgcolor=#CECEFF><font face='Arial,
> Helv, Helvetica' size=2>z.Zt.</td><td width=200 bgcolor=#CECEFF><font
> face='Arial, Helv, Helvetica' size=2>zur Zeit</td></tr>.
>
> Gibt es eine elegante Möglichkeit die Tags zu entfernen, und den Rest (z.Zt.
> zur Zeit) so umzuformen, dass folgendes Ergebnis erziehlt wird. ['z.Zt.'
> "zur Zeit"]
Du könntest es mal mit XIST (http://www.livinglogic.de/Python/xist/)
versuchen. Das Herausfiltern der Tags geht dann folgendermaßen:
from ll.xist import parsers
from ll.xist.ns import html
s = """<tr><td width=200 align=right valign=top bgcolor=#CECEFF><font
face='Arial, Helv, Helvetica' size=2>z.Zt.</td><td width=200
bgcolor=#CECEFF><font face='Arial, Helv, Helvetica' size=2>zur
Zeit</td></tr>"""
node = parsers.parseString(s, tidy=1)
tabelle = node.find(type=html.table, searchchildren=1)[0]
zeilen = []
for tr in tabelle.find(type=html.tr):
zeilen.append([])
for td in tr.find(type=html.td):
zeilen[-1].append(unicode(td))
Damit kriegst Du den Tabelleninhalt als Liste von Listen, d.h.
print zeilen liefert:
[[u'z.Zt.', u'zur Zeit']]
> p.s. die Single- und Doublequotes sind wichtig
Ist das ein vorgegebenes Ausgabeformat? Was passiert, wenn
im String Single- oder Doublequotes sind?
Ausgabecode könnte evtl. so aussehen:
for z in zeilen:
print "['%s' \"%s\"]" % \
(z[0].replace("'", "\\'"),
z[1].replace('"', '\\"'))
Ich hoffe, das hilft Dir weiter.
Bis demnächst,
Walter Dörwald
More information about the Python-de
mailing list