Anzeige:
Ergebnis 1 bis 5 von 5

Thema: HTML-Datei mit Java parsen

  1. #1
    Registrierter Benutzer
    Registriert seit
    02.01.2006
    Beiträge
    39

    HTML-Datei mit Java parsen

    Hallo,

    ich habe folgendes HTML-Dokument:
    Code:
    ... viel HTML ...
    
           <tr bgcolor="#FFFFFF">
               <td class=text>Irgendein String mit Buchstaben Zahlen und Leerzeichen</td>
               <td class=text>Noch so ein String</td>
               <td class=text>1,7</td>
               <td class=text>01.03.2005</td>
               <td class=text></td>
               <td class=text></td>
               <td class=text></td>
               <td class=text></td>
           </tr>
               
           <tr bgcolor="#FFFFFF">
               <td class=text>Irgendein String mit Buchstaben Zahlen und Leerzeichen</td>
               <td class=text>Noch so ein String</td>
               <td class=text>1,7</td>
               <td class=text>02.03.2005</td>
               <td class=text></td>
               <td class=text></td>
               <td class=text></td>
               <td class=text></td>
           </tr>
               <tr> <th colspan="8" bgcolor="#FFFFFF" align="left">&nbsp;</th></tr><tr> <th id="6659b87c23a6a4f822195720afd9ecf900" colspan="8" bgcolor="#F7F7F7" align="left"><a href="javascript: kursopen('http://www.foo.de/index.php?ebene=6659b87c23a6a4f822195720afd9ecf900', 'Blubb')">Blubb</a> (Blaaa 8)</th></tr>
           <tr bgcolor="#FFFFFF">
               <td class=text>Irgendein String mit Buchstaben Zahlen und Leerzeichen</td>
               <td class=text>Noch so ein String</td>
               <td class=text>1,9</td>
               <td class=text>10.03.2005</td>
               <td class=text></td>
               <td class=text></td>
               <td class=text></td>
               <td class=text></td>
           </tr>
    
    ... noch mehr HTML ...
    Wie ihr sehr, wiederholt sich ständig, d.h. 0 bis n Mal, so genau weiß ich das nicht, folgender Abschnitt:
    Code:
           <tr bgcolor="#FFFFFF">
               <td class=text>Irgendein String mit Buchstaben Zahlen und Leerzeichen</td>
               <td class=text>Noch so ein String</td>
               <td class=text>1,7</td>
               <td class=text>01.03.2005</td>
               <td class=text></td>
               <td class=text></td>
               <td class=text></td>
               <td class=text></td>
           </tr>
    Aus all diesen Blöcken würde ich gerne ein Array erhalten, mit folgenden Feldern (pro Zeile):
    - Irgendein String mit Buchstaben Zahlen und Leerzeichen
    - Noch so ein String
    - 1,7 (d.h. die Zahl)
    - 01.03.2005
    - (5. Spalte)
    - (6. Spalte)
    - (7. Spalte)
    - (8. Spalte)

    Ich hoffe dass mir jemand von euch helfen kann!? Falls ihr weitere Infos braucht, helfe ich so schnell es geht weiter.

    Gruß,
    erdnah

  2. #2
    Registrierter Benutzer Avatar von mwanaheri
    Registriert seit
    28.10.2003
    Ort
    Bayreuth
    Beiträge
    569
    Nun, zunächst einmal brauchst du z.B. eine LinkedList, in die du da Ganze hineinschreibst (Ein Array hat immer eine feste größe, und die kennst du vermutlich nicht) und eine Stringvariable zur Wiederverwendung.
    Dann kannst die Datei in einen BufferedReader nehmen, durch den du iterierst.
    Nimm jede Zeile in den String und prüfe sie ab.
    if (zeile.trim().startsWith("<tr") findet den Beginn einer neuen Tabellenzeile.
    lege also eine neue LinkedList an, in die du weiterspeicherst.
    if (zeile.trim().startsWith("<td") // hier beginnt ein Tabellenfeld, das du auslesen kannst. Jetzt kannst du entweder die Zeile aufteilen (.split()) oder die unnötigen Teile abschneiden und hast den String, den du willst. Den hängst du an die kleine LinkedList an.
    if (zeile.trim().startsWith("</tr>") sagt dir, dass die Tabellenzeile fertig ist.
    grosseListe.add(kleineListe)
    und das dürfte es auch schon gewesen sein. Das setzt natürlich voraus, dass die html-Datei ordentliche Zeilenumbrüche hat, aber das scheint in deinem Fall der Fall zu sein.
    Das Ziel ist das Ziel.

  3. #3
    Registrierter Benutzer
    Registriert seit
    09.10.2002
    Ort
    Berlin
    Beiträge
    110
    Hallo

    Hört sich zwar wie klugscheißen an, aber das ist nicht Java sondern Javascript.
    Das ist ein wesentlicher Unterschied.

    MfG
    klaus_harrer

  4. #4
    Registrierter Benutzer Avatar von bischi
    Registriert seit
    10.04.2003
    Beiträge
    4.828
    Das von erdnah ist Plain-HTML.

    Das von mwanaheri ist sicherlich Java - denn Java-Script hat afair keine LinkedList und keinen BufferedReader.

    Wo also ist Java-Script?!

    MfG Bischi

    "There is an art, it says, or rather, a knack to flying. The knack lies in learning how to throw yourself at the ground and miss it" The hitchhiker's guide to the galaxy by Douglas Adams

    --> l2picfaq.pdf <-- www.n.ethz.ch/~dominikb/index.html LaTeX-Tutorial, LaTeX-Links, Java-Links,...

  5. #5
    Registrierter Benutzer
    Registriert seit
    02.01.2006
    Beiträge
    39
    Hi,

    hatte erst versucht es per XML-Parser als DOM-Objekt zu bekommen, aber dafür ist das HTML zu schlecht. Da ist die Lösung von mwanaheri eigentlich am sinnvollsten; sobald sich die Datenquelle ändert bin ich eh im Ar***. Werde mich mal an die Umsetzung machen... danke :-)

    Gruß,
    erdnah

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •