# XML mit JDOM ausgeben [Klappe die 1Mio.ste]



## Gästchen (17. Nov 2006)

Aaaalso, ich suche nach einer Autonr, und will nur die Werte der einzelnen Attribute dieses Autos aus der XML Datei ausgeben:

<Stamm>
	<Auto Autonr="103050">
		<Hersteller>Audi</Hersteller>
		<Modell>A6</Modell>
                <Baujahr>2006</Baujahr>
	</Auto>
	<Auto Autonr="103051">
		<Hersteller>BMW</Hersteller>
		<Modell>315i</Modell>
                <Baujahr>2004</Baujahr>
	</Auto>
<Stamm>

Also wenn ich nach 103050 suche, soll ausgegeben werden:
Audi
A6
2006

Hier mein Java Code (der Fehler muss bei der Ausgabe sein, oder? Warum funktioniert es nicht, mit getValue() den Wert des Attributes auszugeben? Oder ist das die falsche Funktion dafür?):


```
public static void AutoAnzeigen(int Autonr){
  Integer s_Autonr = new Integer(Autonr);
  SAXBuilder builder = new SAXBuilder();
  Document doc = builder.build("Autos.xml");
  Element Stamm =   doc.getRootElement(); 
			
  Iterator Autoliste= Stamm.getChildren("Auto").iterator();
  while (Autoliste.hasNext()){
  Element Auto = (Element) Autoliste.next();
  if (s_Autonr.toString().equals(Auto.getAttribute("Autonr").getValue())){
    List Autodaten = Stamm.getContent();
    Iterator AutodatenIterator = Autodaten.iterator();
    while (AutodatenIterator.hasNext()){
      Element Attribut = (Element) AutodatenIterator.next();
      System.out.println(Attribut.getValue());
    }
  }
}
```


----------



## byte (17. Nov 2006)

Erstmal eins vorweg: Variablen beginnen in Java mit einem Kleinbuchstaben, nur Klassennamen mit einem Großbuchstaben.

Was genau funktioniert denn nicht? Gibts ne Exception oder geht er bloß nicht in den If-Fall?

Versuch mal folgendes:


```
if (Autonr == Auto.getAttribute("Autonr").getIntValue())) {...}
```


----------



## Gästchen (17. Nov 2006)

Doch die if-Abfrage funktioniert richtig, allerdings werden meine Attributwerte nicht ausgegeben.
Also im Grunde funktioniert nur die Ausgabe nicht korrekt.

Irgendwas an an diesem Teil ist nicht korrekt (Eine Fehlermeldung bekomme ich allerdings nicht, also verwende ich vermutlich nur die falsche Methode, oder?):


```
List Autodaten = Stamm.getContent();
    Iterator AutodatenIterator = Autodaten.iterator();
    while (AutodatenIterator.hasNext()){
      Element Attribut = (Element) AutodatenIterator.next();
      System.out.println(Attribut.getValue());
    }
```


----------

