Aus XML mit JDOM aus Elementattributen Werte rauslesen

flanel

Mitglied
Servus!
Ich bin relativ neu in der java Programmierung und brauch für meine Arbeit auch nur einen klitzekeines Skript, leider bekomm ich es weder mit google, noch mit SuFu noch mit "Java ist auch eine Insel" in den Griff. Ich habe folgendes Problem: Aus meiner XML Datei will ich nur das Element "pod" mit dem title="Result" und dem Child subpod...kurzum, ich brauch den String "23". Mehr nicht.
Mein Problem ist, dass, egal was ich lese, immer nur von Elementen beschrieben wird, wie man an sie ran kommt. Ich habe jetzt mal versucht, eine Liste von allen Children pod zu machen und mir diese auszugeben. Das klappt auch (1). Nun will ich als Ausgabe aber nur den Inhalt vom pod mit dem title "Result"; hierfür hab ich versucht, alle Werte der <plaintext> Elemente zu bekommen. Das klappt nicht (2).Anzeige in der Konsole: java.lang.NullPointerException. Außenrum habe ich einen Iterator gebastelt (wie zu sehen) und das ganze läuft in einer while- Schleife. Mein dritter Ansatz war, da ich festgestellt habe, dass in der xml-Datei das Element pod was ich will, das einzige ist, was im <subpod> einen boolean "primary" ist, mit dem man vielleicht eine if Abfrage machen kann.Ist der Wert true,dann schreibe die ausgabe in die Konsole(3) Dies gibt mir aber in der Konsole auch wieder nur die java.lang.NullPointerException. Ob und wo jetzt vielleicht noch ein ".getValue()" oder so was in der Art fehlt, ist erstmal nicht wichtig (darüber soll auch großzügig hinweggesehen werden), auch dass das ganze ohne try /catch exception usw. hier dargestellt wird, es geht nur um die Fragestellung, wie ich denn nun an die 23 dran komme!
Vielen Dank schonmal in Voraus!
PS: Das package ist von der CD von der Insel, ich selbst benutzte Eclipse und die Imports funktionieren!
[xml]
<queryresult success='true' error='false' numpods='5' datatypes='Math' timedout='' timedoutpods='' timing='0.337' parsetiming='0.105' parsetimedout='false' recalculate=''
id='MSPa45731a25d63ea6g1i0a800006a9gfd3d069d1561' version='2.5'>
<pod title='Input'
scanner='Identity'
id='Input'
position='100'
error='false'
numsubpods='1'>
<subpod title=''>
<plaintext>3+4 5</plaintext>
</subpod>
</pod>
<pod title='Result'
scanner='Identity'
id='Result'
position='200'
error='false'
numsubpods='1'
primary='true'>
<subpod title=''
primary='true'>
string(<plaintext>23</plaintext>)

</subpod>
</pod>
<pod title='Number name'
scanner='Integer'
id='NumberName'
position='300'
error='false'
numsubpods='1'>
<subpod title=''>
<plaintext>twenty-three</plaintext>
</subpod>
</pod>
<pod title='Visual representation'
scanner='Integer'
id='VisualRepresentation'
position='400'
error='false'
numsubpods='1'>
<subpod title=''>
<plaintext>* * * * * * * * * * * * * * * * * * * * * * *</plaintext>
</subpod>
</pod>
<pod title='Number line'
scanner='NumberLine'
id='NumberLine'
position='500'
error='false'
numsubpods='1'>
<subpod title=''>
<plaintext></plaintext>
</subpod>
</pod>
</queryresult>
[/xml]

Java:
package com.tutego.insel.xml.jdom;

import java.util.*;
import org.jdom.*;
import org.jdom.input.*;
import org.jdom.output.*;

class Versuch5
{
  public static void main( String[] args ) throws Exception
  {
    Document doc = new SAXBuilder().build( "query.xml" );
    
    Element qlesen = doc.getRootElement();

    Iterator<?> blaListe = qlesen.getChildren( "pod" ).iterator();
    
   
    

    while ( blaListe.hasNext() )
    {
      Element pod = (Element) blaListe.next();
//     String title =  pod.getAttribute("id").getValue();
    boolean  titlematch = qlesen.getChild("pod").getChild("subpod").getAttribute("primary").getBooleanValue();
          
     System.out.println(pod.getAttribute("title").getValue());                                                         //  <-- geht    1
//   System.out.println(pod.getChild("Subpod").getChild("Plaintext").getValue());									   //  <-- geht nicht 2
     
     
     

//     if (titlematch)
//   {
//   	 System.out.println(title);
//    }
   
      
    }
    

  }
}
 
N

nillehammer

Gast
Java:
//   System.out.println(pod.getChild("Subpod").getChild("Plaintext").getValue());
Groß-/Kleinschreibung beachten. Deine Elemente heißen subpod und plaintext mit kleinem Anfangsbuchstaben.
 

Kritiki

Mitglied
du könntest deine Attribute mit indexof("result") > 0 abfragen, so könntest du die Ergebnisse nur mit dem
String "result" herausfiltern.
 

flanel

Mitglied
Java:
 System.out.println(pod.getChild("subpod").getChild("plaintext").getValue());
geht!
allerdings hab ich dann alle, ich will aber nur den einen!

[c]Exception in thread "main" java.lang.NullPointerException [/c]

und das
Code:
indexof("result") > 0
weiß ich nicht einzufügen, sorry! kannst du mir sagen, wie ich das schreiben soll? Ich wär dir echt dankbar!
 
Zuletzt bearbeitet:

flanel

Mitglied
Alles klar! Es klappt jetzt!

Java:
class Versuch5
{
  public static void main( String[] args ) throws Exception
  {
    Document doc = new SAXBuilder().build( "query.xml" );
    
    Element qlesen = doc.getRootElement();

    Iterator<?> blaListe = qlesen.getChildren( "pod" ).iterator();
     
    

    while ( blaListe.hasNext() )
    {
      Element pod = (Element) blaListe.next();																		  
    String title =  pod.getAttribute("id").getValue();															   
   
    if ("Result".equals(title))
    		{
    	 String ergebnis = pod.getChild("subpod").getChild("plaintext").getValue();
    	  System.out.println(ergebnis);		
               										
    		}    
    }
  }
}
Vieln Dank euch beiden!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P JDOM oder SAX XML & JSON 3
Hijo2006 Grundsätzliches zu JDOM 2.x XML & JSON 1
W Kindelemente mit JDOM eines bestimmten Attributes auslesen XML & JSON 6
S JDOM XML Datei darstellen Fehler! XML & JSON 2
S JDom XML ein Element hinzufügen. XML & JSON 1
C JDOM: Value ohne Unterelemente auslesen XML & JSON 1
Z XML Datei mit JDOM einlesen und verarbeiten XML & JSON 6
J JDOM XMLOutputter getPrettyFormat() XML & JSON 3
H JDOM setAttribute Reihenfolge XML & JSON 3
B XML aus einer URL im Internet lesen (JDOM) XML & JSON 4
R sax, stax, jdom, jaxb? List von Objekten speichern und laden XML & JSON 6
C xml validierung gegen xsd mit jdom: Fehlermeldung Cannot find the declaration of element ... XML & JSON 8
T Dom, Jdom, Sax XML & JSON 8
Helgon MalformedByteSequenceException und null JDOM Attribute XML & JSON 5
Helgon JDOM schreibt nicht XML & JSON 2
A XSl mit JDom auslesen XML & JSON 1
G xml, jdom "Entität wurde referenziert aber nicht deklariert." XML & JSON 4
A XSL und JDom XML & JSON 3
G jdom-Klassen in Eclipse importieren XML & JSON 2
S JDOM ohne XML Header erzeugen? XML & JSON 2
G JDOM - aus Children-Liste ein Child direkt ansprechen ohne XPath? XML & JSON 9
S JDOM nur Attribut Name XML & JSON 2
X JDom für SOAP Dateien geeignet? XML & JSON 3
T Xpath & JDOM Element Pfad ausgeben XML & JSON 2
M XML Parsen JDOM NullPointerEcxeption XML & JSON 7
S jdom hasChildren()? XML & JSON 1
T Frage zu getContent unter jdom XML & JSON 6
Z Tutorial für JDOM (XSD-Shema) XML & JSON 3
D jdom, xml, login-system XML & JSON 4
N JDOM: XML einlesen XML & JSON 4
O Parsen einer XML mit JDOM ohne Doctype Declaration XML & JSON 2
lordcarlos jdom zu iso-8859-15 zwingen XML & JSON 4
P jdom XML-Encoding auslesen XML & JSON 12
E JDOM - letzem child Attribut hinzufügen XML & JSON 4
H Schema-Validierung mit JDOM XML & JSON 2
lordcarlos JDOM und entfernen von children XML & JSON 4
E JDOM - Problem beim Zusammenfügen zweier Dateien XML & JSON 2
T jdom.jar als Relativer Pfad in Eclipse einbinden XML & JSON 4
sparrow JDom Element.getChild("Name") liefert null obwohl vorhanden XML & JSON 4
S XML, UTF-8, JDOM und Umlaute XML & JSON 3
E XML - JDOM - Bäume: was würdet ihr hier machen? XML & JSON 11
A JDOM: Wert schreiben bzw. ändern XML & JSON 6
T JDOM Bibiliothek XML & JSON 3
K JDOM vs. DOM, Schnittstellen XML & JSON 5
P Große XML Datei mittels JDOM bearbeiten / einlesen XML & JSON 6
0x7F800000 jdom mit xml.transform inkompatibel, was soll ich nehmen? XML & JSON 2
T EXSD auslesen mit XPath und JDOM XML & JSON 8
A JDOM und Sonderzeichen < > XML & JSON 17
G Simples XML File einlesen mit JDom. Prefix not bound ? XML & JSON 2
N jdom problem beim lesen von child elementen XML & JSON 5
N problem bei xml lesen mit jdom XML & JSON 2
S Ampersand im Jdom-Element XML & JSON 2
N jdom - xslt-Verweis in .xml einfügen XML & JSON 3
S Jdom+java webstart XML & JSON 4
K html -> cyberneko -> xml -> jdom . XML & JSON 3
I JDom Text ändern XML & JSON 4
C jdom.Element nicht vorhanden? XML & JSON 4
W JDOM element ändern funzt nich :( [problem gelöst] XML & JSON 3
C XPath in JDOM klappt nicht XML & JSON 2
S Harte Nuss mit XML und JDOM XML & JSON 2
H mit JDOM Verarbeitungsanweisungen und Kommentare auslesen XML & JSON 2
B jdom: getChildren() problem XML & JSON 4
T Bild in XML per JDOM XML & JSON 4
D JDOM erzeugt leere xmlns Attribute XML & JSON 4
T Elemente zählen mit JDOM in XML XML & JSON 7
B jdom document aus string erzeugen? XML & JSON 1
M JDOM und XPath, zu Element zugehörigen XPath-Ausdruck XML & JSON 5
F JDOM und XPath - Problem mit Namespace ohne Prefix XML & JSON 5
T XML mit JDOM auslesen => langsam? XML & JSON 7
B jdom outputter ohne attribute XML & JSON 2
C XML encoding UTF-8 und JDOM XML & JSON 4
P Probleme mit JDom . addContent(int index,Collection c) XML & JSON 2
R key aus xml lesen mittels jdom XML & JSON 5
M JDOM Element ohne Inhalt kopieren ? XML & JSON 3
X JDOM SAXBuilder Validationschema - Problem XML & JSON 8
G einzelne tags mit jdom auslesen XML & JSON 4
F XML ( ca. 280 MB) JDom & SAXBuilder lesen = OutOfMemoryE XML & JSON 4
K JDOM SAXBuilder einlesen XML & JSON 6
S Ausgabe "asXML" mit Jdom XML & JSON 2
B Element an bestimmter Stelle einfügen (JDOM) XML & JSON 8
G XML mit JDOM ausgeben [Klappe die 1Mio.ste] XML & JSON 2
F XML mit JDOM auslesen XML & JSON 2
D JDOM auf den PC machen XML & JSON 6
J JDOM Unicode XML & JSON 2
J schema-Validierung mit xerces und jdom: bug in java 1.4? XML & JSON 9
P JDOM Werte verändern XML & JSON 4
S OutOfMemory mit JDOM XML & JSON 6
S org.jdom.document in String umwandeln. XML & JSON 2
M ISO-8859-1 >> UTF-8 + JDOM + Verwirrung. XML & JSON 2
J [Newbie] [JDOM] Element aus XML entfernen klappt nicht XML & JSON 4
J JDOM mit XML-Schema XML & JSON 8
P HTML-Sting in JDOM XML & JSON 7
B JDOM && ObjectOutputStream XML & JSON 8
B Versionskonflikt bei JDOM XML & JSON 9
B JDom -- getChild() liefert nicht nachvollziehbar null XML & JSON 2
M JDOM parse Exception XML & JSON 3
G JDom encoding ändern XML & JSON 2
R JDOM Root-Element entfernen aber Rest behalten XML & JSON 10
M XML Elemente mit JDOM durch Text ersetzen XML & JSON 2
R Problem bei Erstellung von XML(JDOM) XML & JSON 3

Ähnliche Java Themen

Neue Themen


Oben