# xml "zeilenweise" einlesen



## carlito09 (9. Jun 2009)

Hi Leute, erarbeite mir seit heute XML im selbststudium, bin mittlerweile soweit, dass ich weiß, wie ich die Datei einlese. Jetzt komme ich aber wirklich nicht weiter und muss mal nachfragen. Es geht um folgendes:

Habe eine XML-Datei, die sieht in etwa so aus:
<root>
<node name="bla" id="1" height="123" width="123" priority="1"></node>
...
</root>

bis jetzt kann ich mir mit

Document datei = aufbau.parse(args[0]);
NodeList list = datei.getElementsByTagName("node");
int anzahl = liste.getLength();
System.out.println(anzahl + " NODES");

immerhin schonmal auslesen, wieviele nodes es gibt :-D

wie komme ich denn jetzt aber an die ganzen sachen wie name usw? die sollen dann in irgendeiner form an einen kontruktor übergeben werden, wie ist latte, entweder in einzelnen variablen oder als liste.

wäre super wenn ihr mir da etwas weiterhelfen könntet =)

vielen dank!


----------



## Wildcard (9. Jun 2009)

Schau mal hier (das sind alles Nodes)
Node (Java Platform SE 6)


----------



## carlito09 (10. Jun 2009)

also irgendwie läuft das nicht so ganz.
ich habe doch diese liste von knoten. wenn ich die jetzt aber ausgeben will mit
System.out.println(knotenListe.item(i).getNodeValue());

kommen nur leere zeilen auf die konsole.

was hat es denn überhaupt mit den child und siblings auf sich? ich dachte ich habe eine liste und keinen baum?


----------



## Wildcard (10. Jun 2009)

Der Value wäre sowas:
[XML]<tag>value</tag>[/XML]
Du interessierst dich für die Attribute aka. Features.


----------



## carlito09 (11. Jun 2009)

ah okay, das ist schon mal gut zu wissen, danke =)

jetzt bekomme ich aber nur die namen der datenfelder, nicht die inhalte raus:

```
NodeList list = xmlbaum.getElementsByTagName("node");
int anzahl = list.getLength();
System.out.println(anzahl + " NODES");
for (int i = 0; i < anzahl; i++) {
	System.out.println(list.item(i).hasAttributes());
	for(int j=0; j<list.item(i).getAttributes().getLength();j++)
		System.out.println(list.item(i).getAttributes().item(j).getNodeName());
	System.out.println("=================================");
}
```

da bekomme ich:
node
id
height
width
priority
===================

wie bekomme ich denn aber:
bla
1
123
123
1
===================
?

wär nett wenn ihr mir da nochmal helfen könntet 
vielen vielen dank


----------



## Wildcard (11. Jun 2009)

Schwere Geburt...
Du hast jetzt die Attribute:

```
System.out.println(list.item(i).getAttributes().item(j).getNodeName());
```
Könnte es vielleicht sein das dich neben dem Attribut Name der Attribut *Value* interessiert?


----------



## carlito09 (11. Jun 2009)

oh mann das ist mit echt peinlich, die methode hab ich in der api einfach übersehen.

vielen dank für deine geduld, damit hab ich alles was ich brauche!

DANKE!


----------

