Seite 1 von 1

Verfasst: Mittwoch 1. November 2006, 16:44
von Y0Gi
Am Rande: Hast du dir mal die XPath-Fähigkeiten von ET angesehen? Damit kannst du einiges an Code sparen und bspw. direkt Tags mit bestimmten Namen beziehen, ohne "manuell" den Baum abzulaufen.

Verfasst: Mittwoch 1. November 2006, 17:34
von BlackJack
boostpy2005 hat geschrieben:Wenn du mit dem Package ElementTree obige html Datei parsen und ausschreiben kann, bitte zeige mal deinen Code im Forum!

Code: Alles auswählen

In [45]: source = """<html>
   ....:  <head>
   ....:  <title> Test me </title>
   ....:  </head>
   ....:  <body>
   ....:  <table class="abc" cellspacing="0">
   ....:  <thead><tr><td> nichts </td></tr></thead>
   ....:  <tbody> <tr><td> nothing </td></tr></tbody>
   ....:  </table>
   ....:  </body>
   ....:  </html>"""

In [46]: doc = etree.fromstring(source)

In [47]: etree.dump(doc)
<html>
 <head>
 <title> Test me </title>
 </head>
 <body>
 <table cellspacing="0" class="abc">
 <thead><tr><td> nichts </td></tr></thead>
 <tbody> <tr><td> nothing </td></tr></tbody>
 </table>
 </body>
 </html>
Und jetzt überleg mal bitte wie ElementTree hier auf die Idee kommen sollte ein `width`-Attribut einzufügen. ElementTree hat doch gar keine Ahnung von HTML und da soll zufällig ein Attribut aus dem Nichts eingefügt werden, welches in HTML eine Bedeutung hat!?

Falls Dir mein Test zu einfach gewesen sein sollte, dann zeig doch bitte mal selbständig lauffähigen Quelltext bei dem das Problem bei Dir auftritt, so das man das nachvollziehen kann.

Verfasst: Sonntag 5. November 2006, 00:20
von boostpy2005
Hi Blackjack,

vielen Dank!

Ich habe herausgefunden, dass ich doch im Code versteckt nach dem Attribut width abgefragt und ohne den Wert zu überprüfen verwendet habe.

Ich hatte noch überlegt, ob ich ein Bug gefunden hätte :roll:

Blackjack und Y0Gi, ich bedanke mich noch einmal bei euch!

Überigens, YoGi, ich werde wahrscheinlich Xpath & XSLT später verwenden, um aus verschachteltem Schema HTML Datei zu generieren.