Hallo zusammen,
seit einigen Tagen versuche ich, aus einer XML-Datei eine Baumstruktur zu erzeugen. Dafür verwende ich ein Beispiel aus dem Internet.
Die auszulesende Datei hat die folgende Sturktur:
[XML]
<OBJECTTYPE id="4">
<OBJECTSHEET id="A">
<ATTRIBUTE id="500"></ATTRIBUTE>
<ATTRIBUTE id="501"></ATTRIBUTE>
<ATTRIBUTE id="502"></ATTRIBUTE>
<ATTRIBUTE id="503"></ATTRIBUTE>
</OBJECTSHEET>
<OBJECTSHEET id="B">
<OBJECTSHEET id="B1">
<ATTRIBUTE id="601"></ATTRIBUTE>
<ATTRIBUTE id="602"></ATTRIBUTE>
<ATTRIBUTE id="603"></ATTRIBUTE>
</OBJECTSHEET>
<OBJECTSHEET id="B2">
<ATTRIBUTE id="701"></ATTRIBUTE>
<ATTRIBUTE id="702"></ATTRIBUTE>
</OBJECTSHEET>
</OBJECTSHEET>
<OBJECTSHEET id="C">
<ATTRIBUTE id="801"></ATTRIBUTE>
<ATTRIBUTE id="802"></ATTRIBUTE>
</OBJECTSHEET>
</OBJECTTYPE>
[/XML]
Die Datei lese ich unter Verwendung des Beispielcodes aus. Mein Problem besteht jetzt darin, auf die einzelnen Attributfelder zuzugreifen. Ich erhalte die Attribute von OBJECTTYPE, OBJECTSHEET und ATTRIBUTE jedoch immer um eine Ebene versetzt.
Bsp:
OBJECTSHEET bekommt ID von OBJECTTYPE (4)
ATTRIBUTE bekommt ID von OBJECTSHEET (A,B,C)
Und auf die ID von ATTRIBUTE kann ich nicht zugreifen.
Hat möglichweise jemand von euch eine Idee? Über einen Lösungsvorschläg wäre ich sehr erfreut
seit einigen Tagen versuche ich, aus einer XML-Datei eine Baumstruktur zu erzeugen. Dafür verwende ich ein Beispiel aus dem Internet.
Die auszulesende Datei hat die folgende Sturktur:
[XML]
<OBJECTTYPE id="4">
<OBJECTSHEET id="A">
<ATTRIBUTE id="500"></ATTRIBUTE>
<ATTRIBUTE id="501"></ATTRIBUTE>
<ATTRIBUTE id="502"></ATTRIBUTE>
<ATTRIBUTE id="503"></ATTRIBUTE>
</OBJECTSHEET>
<OBJECTSHEET id="B">
<OBJECTSHEET id="B1">
<ATTRIBUTE id="601"></ATTRIBUTE>
<ATTRIBUTE id="602"></ATTRIBUTE>
<ATTRIBUTE id="603"></ATTRIBUTE>
</OBJECTSHEET>
<OBJECTSHEET id="B2">
<ATTRIBUTE id="701"></ATTRIBUTE>
<ATTRIBUTE id="702"></ATTRIBUTE>
</OBJECTSHEET>
</OBJECTSHEET>
<OBJECTSHEET id="C">
<ATTRIBUTE id="801"></ATTRIBUTE>
<ATTRIBUTE id="802"></ATTRIBUTE>
</OBJECTSHEET>
</OBJECTTYPE>
[/XML]
Die Datei lese ich unter Verwendung des Beispielcodes aus. Mein Problem besteht jetzt darin, auf die einzelnen Attributfelder zuzugreifen. Ich erhalte die Attribute von OBJECTTYPE, OBJECTSHEET und ATTRIBUTE jedoch immer um eine Ebene versetzt.
Bsp:
OBJECTSHEET bekommt ID von OBJECTTYPE (4)
ATTRIBUTE bekommt ID von OBJECTSHEET (A,B,C)
Und auf die ID von ATTRIBUTE kann ich nicht zugreifen.
Hat möglichweise jemand von euch eine Idee? Über einen Lösungsvorschläg wäre ich sehr erfreut
Java:
public static void treeWalk(
Node node,
int level,
DefaultMutableTreeNode parentNode) {
String nodeName = node.getNodeName();
DefaultMutableTreeNode childNode = null;
if (node.hasChildNodes()) {
level++;
System.out.println(repeat(level, ' ').append(nodeName));
NodeList list = node.getChildNodes();
String name = ((Element)((Node)list)).getAttribute("id"); /* HIER LESE ICH EIN*/
int len = list.getLength();
for (int i = 0; i < len; i++) {
Node child = list.item(i);
NodeList list2 = child.getChildNodes();
childNode = new DefaultMutableTreeNode(name + ":" + child.getNodeName()); /**/
parentNode.add(childNode);
treeWalk(list.item(i), level, childNode);
}
} else {
childNode = new DefaultMutableTreeNode(node.getNodeValue());
System.out.println(
repeat(level, ' ').append(node.getTextContent()));
parentNode.add(childNode);
}
}