XML Parsen

HakBak

Aktives Mitglied
Hallo,

ich parse ein XML Dokument mit dem SAX Parser. Ich suche nach ganz Speziellen Attributen und schreib, das, was dazwischen steht in eine Liste. Nun möchte ich von meiner Hauptklasse aus mit dieser Liste weiterarbeiten. Diese ist aber immer leer. Ich finde gerade meinen Fehler nicht.

Meine ParserKlasse:
siehe unten ...

Und meine MainKlasse
Java:
...
        DescParser sax     = new DescParser();
        List<String> list = new ArrayList<String>(sax.parseIt());
...

Danke
 
Zuletzt bearbeitet:

KrokoDiehl

Top Contributor
Du redest von der
Code:
swid_list
, die immer leer ist? Nun ja, in deinem Code sehe ich nirgends, wo sie angelegt, geschweige denn befüllt wird.
 

HakBak

Aktives Mitglied
Ui, da ist mir ein Fehler beim Einfügen passiert ... hier nochmal der Code, der Parser Klasse:

Java:
public class DescParser extends DefaultHandler {

    private final File DER_DESC = new File(...);
    private final String SW_ID = "...";
    private final String ISIN = "isin";

    private List<String> swid_list = new ArrayList<String>();

    public List<String> parseIt() {
        try {
            SAXParserFactory factory   = SAXParserFactory.newInstance();
            SAXParser        saxParser = factory.newSAXParser();
            DefaultHandler   handler   = new DescParser();
            saxParser.parse(DER_DESC, handler);

        } catch (SAXException e) {
            e.printStackTrace();      //To change body of catch statement use File | Settings | File Templates.
        } catch (IOException e) {
            e.printStackTrace();                       //To change body of catch statement use File | Settings | File Templates.
        } catch (ParserConfigurationException e) {
            e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
        }
        return swid_list;
    }

    private HashMap<String, String> descMap = new HashMap<String, String>();

    @Override
    public void startDocument()
    {
        System.out.println("Document starts.");
    }

    @Override
    public void endDocument()
    {
        System.out.println("Document ends.");

    }

    private String   attr;
    private String[] values = new String[2];
    int count = 0;

    @Override
    public void startElement(String namespaceURI, String localName, String qName, Attributes atts)
    {
        attr = "";

        if (atts.getValue(0) != null) {
            if (atts.getValue(0).equals(SW_ID))
            {
                attr = atts.getValue(0);
            }
        }
    }

    @Override
    public void endElement(String uri, String localName, String qName)
    {
        if (attr.equals(SW_ID)) {
            swid_list.add(buffer.toString());
        }

    }

    private StringBuffer buffer = new StringBuffer();
   
    @Override
    public void characters(char[] ch, int start, int length)
    {
        buffer.delete(0, buffer.length());
        buffer.append(ch, start, length);
    }

}

So jetzt sollte es passen
 

KrokoDiehl

Top Contributor
Kommen die Ausgaben aus
Code:
startDocument()
? Wenn nein dann werden diese sax-Methoden gar nicht aufgerufen, wenn ja, dann kann es nur an dem
[JAVA=62]
if (attr.equals(SW_ID)) {
swid_list.add(buffer.toString());
}
[/code]
liegen, bzw. an der if-Klausel. Bau einmal ein paar Testausgaben rein um herauszufinden, ob und wie
Code:
attr
belegt wird.
 

HakBak

Aktives Mitglied
Die Methoden werden alle aufgerufen und die Liste wird auch befüllt, die Ausgaben und alles stimmt. Wenn ich debugge und Haltepunkte in der Methode
Java:
endDocument()
und bei
Java:
return swid_list;
setze, ist in ersterem Fall, wenn ich an den Haltepunkt komme, die Liste gefüllt und in zweiterem Fall, wenn ich ankomme, die Liste plötzlich leer.
 

KrokoDiehl

Top Contributor
Aaah... ok, ich glaube ich habs:
In der Methode
Code:
parseIT()
erzeugst du einen neuen DescParser. Dessen Liste wird befüllt. Die Rückgabe der Methode gibt aber die Liste der aktuellen Instanz zurück!
 

HakBak

Aktives Mitglied
Öhm, ich stehe gerade auf dem Schlauch, was tue ich dagegen? Ich muss doch diesen DescParser erzeugen, um einen handler zu bekommen. Ich steh grad echt auf dem Schlauch, sorry
 

Noctarius

Top Contributor
Wie schon erwähnt musst du dem Sax-Parser die DescParser Instanz per als [c]this[/c] mitgeben und keine neue Instanz erstellen, wie du es machst.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Beowend String zu Date parsen Java Basics - Anfänger-Themen 1
W Strings und das parsen Java Basics - Anfänger-Themen 8
R String index out of range: -1 beim Datei Parsen Java Basics - Anfänger-Themen 15
K String nach bestimmtem Muster parsen Java Basics - Anfänger-Themen 3
K Datentypen String zu Integer parsen Java Basics - Anfänger-Themen 2
L Jackson JSON parsen Java Basics - Anfänger-Themen 7
7.7GradOst Datentypen Stringeingabe aus z.B. "4,d,<" parsen Java Basics - Anfänger-Themen 7
D InputStream parsen und als Bilddatei abspeichern Java Basics - Anfänger-Themen 1
M JAVA String schnell parsen Java Basics - Anfänger-Themen 14
K Methoden Datum parsen Java Basics - Anfänger-Themen 16
V Java Regex richtig parsen Java Basics - Anfänger-Themen 2
J Rekursives Parsen (ohne Reg Expressions) Java Basics - Anfänger-Themen 8
L Beliebigen Datentypen aus String parsen Java Basics - Anfänger-Themen 6
L Datei aus Multipart parsen und speichern, seltsam codiert? Java Basics - Anfänger-Themen 16
J String aus Json File parsen Java Basics - Anfänger-Themen 6
S Date parsen klappt nicht richtig Java Basics - Anfänger-Themen 3
M Webseiten Parsen Java Basics - Anfänger-Themen 2
M Input/Output Probleme beim Parsen von CSV und TXT Dateien Java Basics - Anfänger-Themen 7
V Umlaute beim Parsen einer HTML Seite Java Basics - Anfänger-Themen 4
P String parsen Java Basics - Anfänger-Themen 5
S fehler beim datum parsen Java Basics - Anfänger-Themen 6
T Klassen CSV datei einlesen und parsen Java Basics - Anfänger-Themen 4
F Methoden Termin parsen Java Basics - Anfänger-Themen 2
Luk10 String (Hexadezimal) zu int parsen Java Basics - Anfänger-Themen 12
O Nicht Standard Form boolesche Funktion in Standard Form parsen Java Basics - Anfänger-Themen 3
E Datentypen Unvollständiges Datum parsen Java Basics - Anfänger-Themen 8
U Website parsen Java Basics - Anfänger-Themen 11
D Java - OutOfMemoryError beim Parsen Java Basics - Anfänger-Themen 15
J String zu Double parsen (multiple points) Java Basics - Anfänger-Themen 2
K Fehlerbehandlung beim Parsen von Strings Java Basics - Anfänger-Themen 9
F Datum AM / PM parsen Java Basics - Anfänger-Themen 5
A Datentypen Datum mit "May" zu Date parsen Java Basics - Anfänger-Themen 6
F Datum parsen Java Basics - Anfänger-Themen 6
R Datumsformatierung parsen Java Basics - Anfänger-Themen 8
E Code parsen/ formatieren Java Basics - Anfänger-Themen 3
G String parsen Java Basics - Anfänger-Themen 3
J int Wert mit getter holen und in String parsen Java Basics - Anfänger-Themen 5
trash Double Parsen? Java Basics - Anfänger-Themen 3
M Datum parsen Java Basics - Anfänger-Themen 10
A Parsen von double zu int? Java Basics - Anfänger-Themen 2
L String zu Enum parsen Java Basics - Anfänger-Themen 8
L String zuverlässig nach Char parsen? Java Basics - Anfänger-Themen 4
S String KeyEvent parsen Java Basics - Anfänger-Themen 2
D Datum parsen Java Basics - Anfänger-Themen 11
J HTML mit XPath parsen Java Basics - Anfänger-Themen 7
H Gleichung parsen Java Basics - Anfänger-Themen 10
Spin SAX parsen ..XML not found Java Basics - Anfänger-Themen 2
W String zu Calendar parsen Java Basics - Anfänger-Themen 4
S String Parsen Java Basics - Anfänger-Themen 3
T Zeitwerte parsen Java Basics - Anfänger-Themen 6
J Scanner - Zeile parsen Java Basics - Anfänger-Themen 8
S String parsen Java Basics - Anfänger-Themen 17
W Char in String parsen Java Basics - Anfänger-Themen 6
E Wochentag String parsen Java Basics - Anfänger-Themen 2
S Ascii Datei parsen Java Basics - Anfänger-Themen 2
bugmenot args parsen Java Basics - Anfänger-Themen 3
G Swing xml parsen - Office Java Basics - Anfänger-Themen 8
M Bilder "parsen" Java Basics - Anfänger-Themen 5
G String parsen Java Basics - Anfänger-Themen 7
G Char Wert in Int Wert parsen Java Basics - Anfänger-Themen 10
P HTML parsen Java Basics - Anfänger-Themen 2
K Objekte zurück parsen Java Basics - Anfänger-Themen 2
D xml parsen mit Java Java Basics - Anfänger-Themen 5
G Vector Strijng parsen Java Basics - Anfänger-Themen 6
G Url parsen? Java Basics - Anfänger-Themen 3
H parsen Java Basics - Anfänger-Themen 24
M probleme beim parsen Java Basics - Anfänger-Themen 7
T Beim XML-Parsen Text einlesen Java Basics - Anfänger-Themen 5
C parsen Java Basics - Anfänger-Themen 2
G Parsen eines Strings Java Basics - Anfänger-Themen 4
M Object[] parsen Java Basics - Anfänger-Themen 9
E Mathematisch parsen, aber mit einer Variablen X ! Java Basics - Anfänger-Themen 6
N Int parsen Java Basics - Anfänger-Themen 3
D Array Parsen Java Basics - Anfänger-Themen 4
N Datum parsen Java Basics - Anfänger-Themen 3
P Datei mit Strings parsen Java Basics - Anfänger-Themen 4
M Html Parsen / Values von Hidden Fields auslesen Java Basics - Anfänger-Themen 10
W html parsen Java Basics - Anfänger-Themen 2
K Tokens in Integer parsen Java Basics - Anfänger-Themen 2
D HTML-Datei einlesen/parsen Java Basics - Anfänger-Themen 9
J java script mit java parsen Java Basics - Anfänger-Themen 6
G parsen von double zu int Java Basics - Anfänger-Themen 4
RaoulDuke java.util.Date parsen Java Basics - Anfänger-Themen 5
B Problem beim XML-Parsen Java Basics - Anfänger-Themen 10
G Parsen des Datums nicht möglich! Wer kann helfen? Java Basics - Anfänger-Themen 7
M.C.S. String parsen in Java Java Basics - Anfänger-Themen 5
T Parsen einer Datei? Java Basics - Anfänger-Themen 3
R Website mit Java parsen Java Basics - Anfänger-Themen 4
S String nach boolean parsen! Java Basics - Anfänger-Themen 5
M regulärer Ausdruck zum Parsen einer E-Mail Signatur Java Basics - Anfänger-Themen 16
C Text mit Trennzeichen parsen (Bsp. Ich/esse/heute/Eis) Java Basics - Anfänger-Themen 9
A Parsen einer XML-Datei: Wo sind meine Start-Tags??? Java Basics - Anfänger-Themen 22
A erste Schritte auf dem Weg eine XML-Datei zu parsen Java Basics - Anfänger-Themen 2
F Kommandozeile parsen Java Basics - Anfänger-Themen 6
T XML Parsen und Inhalt in ein Byte Array schreiben Java Basics - Anfänger-Themen 3
P String zu Date bei jedem Tastendruck parsen Java Basics - Anfänger-Themen 3
V logfile parsen Java Basics - Anfänger-Themen 7
D HTML Code einlesen und nach Links parsen Java Basics - Anfänger-Themen 10
M String array in Int array parsen und umgekehrt Java Basics - Anfänger-Themen 6
D String in einen primitiven datentypen parsen Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben