tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
430
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    paradig paradig ist offline Rookie
    Registriert seit
    Jun 2009
    Beiträge
    8
    Hallo

    ich versuche eine Webseite einzulesen um dann Daten zu extrahieren. Diese Zahlen (Aktienkurse) sollen zu einem bestimmten Zeitpunkt eingelesen (zB eröffnung und schluss).

    Die Webseite scheint aber entweder schlecht erstellt worden zu sein oder es handelt sich um ein anderes Format!

    Da ich aber den Seitenquellcode sowohl vorne wie auch hinten abschneide kann ich mir das nicht so ganz erklären.
    Wenn ich den Code abgeschnitten habe steht z
    HTML-Code:
    <tr bgcolor="#ffffff">
    <td valign="middle" height="120" width="1" class="emptyCellPadding"><img src="http//bild" width="1" height="20"><img src="http://bild" width="10" height="20" alt=" "></td>
    <td align="left" valign="middle" class="onheadNav"><a href="http://linkzuChart"> SAP</a><img src="http:gif" width="4" border="0" alt=" ">( <a id="kurse">19</a><img align="abse" border="0" height="25" width="25" alt="Volumen" title="Volumen" src="gif">)<span> </span></td>
    <td align="left" nowrap valign="middle" class="contentValueFont">EURÂ*122,90</td>
    <td align="middle" valign="middle" class="contentValueFont">2000000</td>
    <td align="left" valign="middle" class="contentValueFont">05.01.11 12:22:12 MEZ</td>
    <td><img src="s.gif" width="1" height="1" alt=" "></td>
    </tr>

    Jetzt steht hier in der Zeile drei der Aktientitel (SAP) und in der Zeile vier steht Kurs und in der Zeile 6 das Datum.
    Diese drei Werte würde ich nun gerne auslesen.
    Aber bei den Bilderlinks kommt folgende Fehlermeldung:
    Error on line 2: The element type "img" must be terminated by the matching end-tag "</img>

    Ich bin mir nun nicht sicher ob ich alles richtig mache, wenn ich zum Beispiel bei comdirekt das einlese habe ich keine Probleme, aber bei diesem code schon.

    Kann mir jemand helfen?

    danke

    PARA
    Geändert von sheel (15.01.12 um 17:05 Uhr) Grund: Codetags
     

  2. #2
    Registriert seit
    Jul 2002
    Ort
    Frankfurt (Hessen)
    Beiträge
    2.135
    Also HTML ist nicht XML
    Die Fehlermeldung sagt es ja das </img> fehlt - JDOM kommt damit nicht klar wenn ein Tag geöffnet, aber nicht geschlossen wird..

    ich denke mal am einfachsten wird es sein wenn du den HTML Code vor der übergabe an JDOM änderst.
    suche nach "img" und ersetze durch "/img" sollte helfen.
     

  3. #3
    paradig paradig ist offline Rookie
    Registriert seit
    Jun 2009
    Beiträge
    8
    Hallo

    in dem oben genannten Code, das ist das original nur sind da keine Tag schließer.
    Deshalb habe ich mit repleace grundlegend alle mit / ersetzt.

    Aber ich denke es geht eher darum das mein Beispiel kein XML ist sondern HTML?
    also sollte ich mit einem HTML Parser arbeiten?

    Gruss

    PARA
     

  4. #4
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist gerade online Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    Hi,
    versuch es mal hiermit:
    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    
        public void read(String path) {
            URL url;
            InputStream inputStream = null;
            InputStreamReader reader = null;
            try {
                url = new URL(path);
                inputStream = url.openStream();
                reader = new InputStreamReader(inputStream);
                
                ParserDelegator parserDelegator = new ParserDelegator();
                ParserCallback parserCallback = new ParserCallback() {
                    public void handleText(final char[] data, final int pos) {
                    }
     
                    public void handleStartTag(Tag tag, MutableAttributeSet attribute, int pos) {
                        if (tag == Tag.A) {
                        }
                    }
     
                    public void handleEndTag(Tag t, final int pos) {
                    }
     
                    public void handleSimpleTag(Tag t, MutableAttributeSet a, final int pos) {
                    }
     
                    public void handleComment(final char[] data, final int pos) {
                    }
     
                    public void handleError(final java.lang.String errMsg, final int pos) {
                    }
                };
                parserDelegator.parse(reader, parserCallback, false);
            } catch(MalformedURLException e) {
                e.printStackTrace();
            } catch(IOException e) {
                e.printStackTrace();
            } finally {
                try {
                    reader.close();
                } catch(IOException e) {
                    e.printStackTrace();
                }
                try {
                    inputStream.close();
                } catch(IOException e) {
                    e.printStackTrace();
                }
            }
        }
    Damit kannst du den Inhalt einer URL direkt auslesen und mit den Inhalt verarbeiten. Das geht wahrscheinlich einfacher und ist effektiver.

    Gruß

    Fabio
     
    Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]

    Tutorials:
    Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
    JAnimationPanel - Animationen für Swing/AWT
    SWTRatingBar (Bewertungs-Composite) selbst programmieren
    ____________________________________________________________________________
    Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.

  5. #5
    Starko Starko ist offline Grünschnabel
    Registriert seit
    Jan 2012
    Beiträge
    1
    Hallo PARA,

    wie oben bereits beschrieben übergibst du dem JDOM-Parser HTML anstatt XML.
    Schau dir mal die Bibliothek JTidy an. Mit der kannst du HTML in XML umwandeln.

    Grüße,

    Daniel
     

Ähnliche Themen

  1. Antworten: 1
    Letzter Beitrag: 27.12.10, 14:10
  2. JDOM - XML Dokument ohne Header <?...?>
    Von chriss_2oo4 im Forum Java
    Antworten: 7
    Letzter Beitrag: 21.04.08, 11:22
  3. Antworten: 0
    Letzter Beitrag: 04.04.07, 12:57
  4. XML Dokument mit JDOM
    Von schlunzer im Forum Java
    Antworten: 2
    Letzter Beitrag: 03.03.07, 13:56
  5. Antworten: 2
    Letzter Beitrag: 06.06.06, 19:14