# jTree - Child-Attribute auslesen (XML)



## H1GHH0o (11. August 2007)

Hallo

habe momentan ein kleines Problem:


```
/*


DefaultMutableTreeNode root_node =  new DefaultMutableTreeNode("Main");
treeModel = new DefaultTreeModel ( root_node );

Element root = doc.getRootElement();

for(...)
{

List childs_sub=root.getParentElement().getChildren();
Element sub_sub=(Element)childs_sub.get(i);

String test1=sub_sub.getAttributeValue("from");
String test2=sub_sub.getAttributeValue("to");

System.out.println(test1+" "+test2);

}
*/
```



sollte mir eigentlich die Attribute von den Childs ausgeben, machts aber nicht ...


vorhin hat er mir wenigstens noch NULL ausgegeben aber jetzt mal garnichts mehr

 Hilfe


----------



## zerix (13. August 2007)

Hallo,

könntest du vielleicht mal die XML-Datei posten?

MFG

zEriX


----------



## H1GHH0o (14. August 2007)

mittlerweile habe ich das Problem gelöst

hier der Lösungsansatz ^^


```
//defaultNode anlegen
            DefaultMutableTreeNode root_node =  new DefaultMutableTreeNode(doc.getRootElement().getAttributeValue("name").toString());
            treeModel = new DefaultTreeModel ( root_node );

            //hauptelement und kinder festlegen
            Element root = doc.getRootElement();        
            List childs = root.getChildren();

            //durch die Kinder durchgehen
            for (int i=childs.size()-1,j=0; i>=0; i--,j++)
            {
                //nächstes Kind
                Element sub = (Element)childs.get(i);

                //Attribut "name" von "DataSet""
                String name    = sub.getAttributeValue("name");

                //Wert von Kind "Function"
                String func    = sub.getChild("Function").getText();

                //Ebene tiefer um Attribute "from" und "to" herauszubekommen
                List childs_sub=sub.getChildren();

                //durch die Kinder durchgehen
                for (int k=0; k<childs_sub.size(); k++)
                {
                    //nächstes Kind
                    Element sub_sub = (Element)childs_sub.get(k);

                    //prüfen, ob Attribute leer sind
                    if(sub_sub.getAttributeValue("from")!=null && sub_sub.getAttributeValue("to")!=null)
                    {
                        System.out.println("Child-Attribut From: "+sub_sub.getAttributeValue("from"));
                    }
                }
}
```



XML sah so aus:

```
<?xml version="1.0" encoding="UTF-8"?>
<DataSetCollection name="ExampleDatasets">
	<DataSet name="DS1">
		<DataRange from="0" to="1" />
		<Function>sin(x)</Function>
	</DataSet>
	<DataSet name="DS2">
		<DataRange from="0" to="1" />
		<Function>x^3+2x^2+5</Function>
	</DataSet>
	<DataSet name="DS2">
		<DataRange from="0" to="100" />
		<Function>cos(x)^2*sin(x/2)*100</Function>
	</DataSet>
</DataSetCollection>
```


----------

