# Elemente eines Node auslesen



## hugo (20. Jun 2006)

Hi,

ich habe folgendes XML-Beispiel:

```
<HL7Configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="./HL7Config.xsd">

<HL7Driver>
	<Name>(Philips) IntelliVue Information Center</Name>
	<HL7Version>2.3</HL7Version>
	<ComunicationPossibility>Intervallmodus</ComunicationPossibility>
	<ComunicationPossibility>Anfragemodus</ComunicationPossibility>
</HL7Driver>

<HL7Driver>
	<Name>Allgemein</Name>
	<HL7Version>2.5</HL7Version>
</HL7Driver>
	
</HL7Configuration>
```
Ich will nun nur die Namen von den Treibern haben. Dafür habe ich folgenden Quellcode, aber ich bekomme immer nur kryptische Ausgaben (sprich: lauter Leerzeichen) auf der Konsole.

```
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();  
			DocumentBuilder builder = factory.newDocumentBuilder();
			Document xmlDriverDoc = builder.parse( new File("resource/properties/HL7Config.xml"));

		NodeList DriverNodes = xmlDriverDoc.getElementsByTagName("HL7Driver");
			
			for (int i = 0; i<DriverNodes.getLength(); i++){
				
				Node DriverNode = DriverNodes.item(i);
				System.out.println("<Name>"+DriverNode.getFirstChild().getNodeValue());
				System.out.println("-----------");
			}
```


----------



## hugo (20. Jun 2006)

Bin jetzt auf den JDOM-Parser umgestiegen und jetzt läuft's.

```
SAXBuilder sxbuild = new SAXBuilder();
			InputSource is = new InputSource("resource/properties/HL7Config.xml");
			try {
				this.xmlDriverDoc = sxbuild.build(is);
			} catch (JDOMException e) {}

Element root = this.xmlDriverDoc.getRootElement();
			Object[] hl7Drivers = root.getChildren("HL7Driver").toArray();

			for (int i = 0; i<hl7Drivers.length; i++){
				Element hl7Driver = (Element) hl7Drivers[i];
				System.out.println(hl7Driver.getChild("Name").getValue());
			}
```


----------



## Murray (20. Jun 2006)

Mit W3C-DOM sollte es auch gehen, wenn Du innerhalb des <HL7Driver/>-Nodes explizit zum <Name/>-Element verzweigst:


```
for (int i = 0; i<DriverNodes.getLength(); i++){
            
            Node DriverNode = DriverNodes.item(i);
            System.out.println("<Name>"+DriverNode.getElementsByTagName( "Name").item(0).getNodeValue());
            System.out.println("-----------");
         }
```


----------

