JasonLief Geschrieben 28. Oktober 2010 Teilen Geschrieben 28. Oktober 2010 Hi FFI-User Ich habe da ne Frage. Die Suche hat leider keine Ergebnisse hervorgebracht. Es geht darum das ich ein XML-File Parsen will. Die Struktur habe ich, jedoch kann es sein das ab und zu dieses Element nicht vorhanden ist. Struktur BEISPIEL: <Party> [INDENT]<Gast Name: Hans>[/INDENT] [INDENT][INDENT]<Getränk>Wasser</Getränk>[/INDENT] [/INDENT] [INDENT][INDENT]<Schmuck>Ohrring</Schmuck>[/INDENT] [/INDENT] [INDENT]</Gast>[/INDENT] [INDENT]<Gast Name: Uschi>[/INDENT] [INDENT][INDENT]<Getränk>Wasser</Getränk>[/INDENT] [/INDENT] [INDENT]</Gast>[/INDENT] </Party> In diesem Beispiel ist bei Hans Schmuck vorhanden, aber bei Uschi nicht. Wie kann ich nun auslesen, ob Schmuck vorhanden ist, oder eben nicht?! Danke für die Antworten! Liebe Grüsse JL Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 28. Oktober 2010 Teilen Geschrieben 28. Oktober 2010 Ich sehe hier nicht den Bezug zu Java. Du musst prüfen ob der Knoten vorhanden ist. Je nach Parser (Sax oder DOM) kannst Du die Knoten prüfen. Andere Möglichkeiten sind XSL, mit denen Du validieren kannst, ob ein Knoten existiert oder nicht, wobei eben damit schon bevor die XML einliest, geprüft werden kann, ob sie der Struktur entspricht. Weiteres wäre XQuery mit der Du direkt Knoten verarbeiten kannst Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
JasonLief Geschrieben 29. Oktober 2010 Autor Teilen Geschrieben 29. Oktober 2010 Ich sehe hier nicht den Bezug zu Java. Du musst prüfen ob der Knoten vorhanden ist. Je nach Parser (Sax oder DOM) kannst Du die Knoten prüfen. Andere Möglichkeiten sind XSL, mit denen Du validieren kannst, ob ein Knoten existiert oder nicht, wobei eben damit schon bevor die XML einliest, geprüft werden kann, ob sie der Struktur entspricht. Weiteres wäre XQuery mit der Du direkt Knoten verarbeiten kannst Das ganze muss ich mit Java handlen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 29. Oktober 2010 Teilen Geschrieben 29. Oktober 2010 Ah okay, also wie schon gesagt, Du musst den Baum parsen und dafür gibt es unterschiedliche Möglichkeiten Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
JasonLief Geschrieben 29. Oktober 2010 Autor Teilen Geschrieben 29. Oktober 2010 Ah okay, also wie schon gesagt, Du musst den Baum parsen und dafür gibt es unterschiedliche Möglichkeiten Das ist mir klar. Ich habe es etwas sehr ungenau formuliert... Ich kann nun Element party=doc.getRootElement(); List<Element> gäste = party.getChildren("gast"); for(Element schmuckstück : gäste){ String schmuck = schmuckstück.getText(); } bei: String schmuck.... gibt es mir eine Nullpointer exception, obwohl ein wert eingetragen ist! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 29. Oktober 2010 Teilen Geschrieben 29. Oktober 2010 bei: String schmuck.... gibt es mir eine Nullpointer exception, obwohl ein wert eingetragen ist! Soweit ich mich jetzt erinnere wird der Inhalt eines Knotens wieder als Knoten gesehen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
JasonLief Geschrieben 29. Oktober 2010 Autor Teilen Geschrieben 29. Oktober 2010 Soweit ich mich jetzt erinnere wird der Inhalt eines Knotens wieder als Knoten gesehen Aber ich mache doch ein getText(); ... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
etreu Geschrieben 29. Oktober 2010 Teilen Geschrieben 29. Oktober 2010 Schmuck ist aber trotzdem ein Knoten. Das Kind von Schmuck ebenfalls. Die zwei sollten sich jedoch beim Typ des Knotens unterscheiden (Elementknoten vs. Textknoten). Du bist also noch eine Ebene zu weit oben würde ich sagen. Hast du dir mal die Stelle im Debugger angeschaut? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.