# dom nodes vs. elements?



## mk (19. Feb 2006)

hi,
ich würde gerne eine xml datei traversieren und bei jedem element eine methode aufrufen. diese benötigt als parameter:

- den elementnamen (String)
- ggf den attributnamen (String)
- ggf. den pcdata inhalt (String)

soweit der plan. zum parsen der xml datei schien mir dom das richtige zu sein, also hab ich es so probiert:


```
public static void main( String[] args )
{
	try
	{
	Document d = DocumentBuilderFactory
			.newInstance()
			.newDocumentBuilder()
			.parse(new File( "test1.xml" ));
        readDoc( d );
}
...


static void readDoc( Document doc )
{
        Element e = doc.getDocumentElement();
        System.out.println(e.getNodeName()); //Ausgabe: elem1
	// geht nicht: 
	// Element child = (Element) e.getFirstChild();
        Node child = e.getFirstChild();
        System.out.println(child.getNodeName()); //Ausgabe: #text
}
```
das klappt leider nicht...    

warum bekomme ich bei n.getNodeName() nicht den Namen des Knotens?
und wo genau liegt der unterschied zwischen Element und Node? 

danke schonmal!


----------



## clemson (19. Feb 2006)

ich würde dir JDOM empfehlen. ist ziemlich einfach und intuitiv verwendbar...


```
SAXBuilder builder = new SAXBuilder();
Document doc = builder.build( new File("test1.xml") );

Element root = doc.getRootElement();
System.out.println( root.getName() );
```


----------



## mk (19. Feb 2006)

super, mit jdom isses einfach! habs hinbekommen, danke!


----------

