# Frage zu der Ausgabe von XML Knotentypen



## Kannnichtcoden (29. Nov 2022)

Also mein Hauptziel ist es nachher, für jede beliebige XML Datei eine DTD automatisch erstellen zu lassen. Dafür muss ich wissen welche Art von Knoten gerade angeschaut wird (Element, Attribut,...). Nun habe ich mal ein wenig rumprobiert und frage mich wo mein Fehler liegt. In der Theorie, müsste doch der NodeType von mit dem TAG <note> = 2 (für Attribute) sein, oder nicht? Der "NodeType" = 1 steht meines Wissens für ein Element.

 Bin noch ein ziemlicher Neuling was XML angeht, habe allerdings hier im Forum bzw. generell im Internet nichts explizites gefunden. Hoffe einer von euch kann mir meinen Fehler aufzeigen .




```
public static void main(String[] args) throws ParserConfigurationException, IOException, SAXException {
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        DocumentBuilder documentBuilder = null;
        documentBuilder = factory.newDocumentBuilder();
        Document document = documentBuilder.parse("Test.xml");


    Node node = document.getFirstChild();
    System.out.println(node.getNodeName()); //Ausgabe auf der Konsole: Note
    System.out.println(node.getNodeType()); //Ausgabe auf der Konsole: 1
    NodeList nodeList = node.getChildNodes();
    Node node1 = nodeList.item(1);
    System.out.println(node1.getNodeName()); //Ausgabe auf der Konsole: note
    System.out.println(node1.getNodeType()); //Ausgabe auf der Konsole: 1
```

XML (Quelle W3schools.org) 

```
<Note>
    <note date="12/11/2002">
        <to>Tove</to>
        <from>Jani</from>
        <heading>Reminder</heading>
        <body>Don't forget me this weekend!</body>
    </note>
</Note>
```


----------



## fhoffmann (29. Nov 2022)

`note` ist ein Element, das das Attribut `date` hat.


----------



## Kannnichtcoden (29. Nov 2022)

fhoffmann hat gesagt.:


> `note` ist ein Element, das das Attribut `date` hat.


Ahhh, dann hatte ich das einfach falsch verstanden. 
mit: 
*


		Java:In die Zwischenablage kopieren


 [/B] System.out.println(node1.getAttributes().item(0).getNodeType());

krieg ich dann auch raus, dass es ein Attribut gibt. 
Danke!!*


----------

