# bestimmtes Element auslesen - ich verzweifel



## Naftal (31. Aug 2006)

Hallo, ich will aus einer XML Datei (s.u.) nur den inhalt von <domain language="de"> ausgeben gebe ich ohne den umweg von getAttribute nur "domain" ein erhalte ich zusätzlich ja noch den inhalt von <domain language="en">
was stimmt nicht? liegt es an getAttribute?


```
import javax.xml.parsers.*;
import org.w3c.dom.*;

public class XML3 {

    public void parsen(String [] args) throws Exception {
        DocumentBuilderFactory fabrik = DocumentBuilderFactory.newInstance();
        DocumentBuilder aufbau = fabrik.newDocumentBuilder();
        Document xmlbaum = aufbau.parse(args[0]);
        NodeList knotenListe = xmlbaum.getElementsByTagName("domain");
            System.out.println(args[0]);

        int anzahl = knotenListe.getLength();
        for (int i=0; i<anzahl; i++) {
            Element knoten = (Element) knotenListe.item(i);
            String ausgabe = knoten.getAttribute("language=\"de\"");
            System.out.println(ausgabe);
        }
    }

    public static void main (String [] args) throws Exception {
        XML3 proggi = new XML3();
        proggi.parsen(args);
    }
}
```

XML Datei

```
<?xml version='1.0' encoding ='utf-8'?>





<objects>







<object objectType         = "problemType"              
        objectInternalName = "realNumbersProveInequalities" 
        problemClass       = "formula manipulation" > 

   <objectExternalName language="en"   objectStandardName="yes">  
     Prove inequalities  
   </objectExternalName>

   <objectExternalName language="de"   objectStandardName="yes">  
     Beweise Ungleichungen  
   </objectExternalName>

   <taxonomyMathSciencesEdu> 3.1.5 Inequalities </taxonomyMathSciencesEdu>


   <domain language="en">  calculus: real numbers </domain>

   <domain language="de">  Analysis: Reelle Zahlen </domain>

   
</object>
</objects>
```


----------



## KSG9|sebastian (1. Sep 2006)

1. verstehe ich deine Frage nicht da die Sätze ziemlich wirr formuliert sind

2. frage ich mich was dieses Konsturkt bedeuten soll:   String ausgabe = knoten.getAttribute("language=\"de\""); 

3. würde ich das so machen: ausgabe = knoten.getAttribute("language");

Siehe hier: http://java.sun.com/j2se/1.4.2/docs/api/org/w3c/dom/Element.html#getAttribute(java.lang.String)
Und da: 
http://java.sun.com/j2se/1.4.2/docs/api/org/w3c/dom/package-summary.html


----------



## Naftal (1. Sep 2006)

hi, also wie ich schon geschrieben habe sind da 2 tags mit domain language,
einer mit "de" und einer mit "en" und ich will nur den mit "de", also würde 

```
ausgabe = knoten.getAttribute("language");
```
wohl genausowenig das gewünschte ergebnis liefern.

so bekomme ich nämlich die ausgabe:
_XML-Datei
en
de
_

ich möchte aber:
_XML-Datei
  Analysis: Reelle Zahlen _


----------



## Gast (14. Sep 2006)

Schon mal dran gedacht nach einem kompletten durch parsen des dokuments mit hilfe von 
Document document = builder.parse("test.xml");
NodeList nlDomain = document.getElementsByTagName("domain");
...
ein zu lesen . die ausgabe geschieht dann über 
Element Domain = (Element) nlDomain.item(0);
String sDomain = Domain.getTextContent();

etc mit dem string kannst du dann ja machen was du willst


----------

