Shizzl_chrizzl
Erfahrenes Mitglied
Hi,
ich hab n kleinens Problem mit dem Parsen einer xml-File.
Ich möchte die XML-File im Anhang parsen. Das Einlesen funktioniert einwandfrei. Auseinanderpflücken kann ich sie auch, nur noch nicht so wie ich es gerne möchte bzw. bin ich neu auf dem Gebiet und kenne wahrscheinlich einige Kniffe noch nicht.
Ich will die xml-File einfach in ihre Ebenen zerlegen. Sprich die Group in einen Vektor, die Items der Groups in einen anderen Vektor und dann mit den vektoren JTabbedPanes erzeugen deren Namen im Group Vektor und deren Elemente im Items-Vektor.
Hier beginnt es schon mal ich weis nicht ob das der beste Weg ist, aber ich denke mal das das eine vernüniftige Herangehensweise sein dürfte.
Ich stell mal meinen bisherigen Versuch rein und hoff das ihr mich in die richtige Richtungen schubsen könnt. Hier funktioniert das Parsen zwar schon aber ich kann es nicth in die einzelnen Ebenen zerlegen sondern nur stumpf element nach element parsen.
Ich will nur die Group "Extensions" parsen , nur so als Info für das Vorgehen im Quelltext.
ich hab n kleinens Problem mit dem Parsen einer xml-File.
Ich möchte die XML-File im Anhang parsen. Das Einlesen funktioniert einwandfrei. Auseinanderpflücken kann ich sie auch, nur noch nicht so wie ich es gerne möchte bzw. bin ich neu auf dem Gebiet und kenne wahrscheinlich einige Kniffe noch nicht.
Ich will die xml-File einfach in ihre Ebenen zerlegen. Sprich die Group in einen Vektor, die Items der Groups in einen anderen Vektor und dann mit den vektoren JTabbedPanes erzeugen deren Namen im Group Vektor und deren Elemente im Items-Vektor.
Hier beginnt es schon mal ich weis nicht ob das der beste Weg ist, aber ich denke mal das das eine vernüniftige Herangehensweise sein dürfte.
Ich stell mal meinen bisherigen Versuch rein und hoff das ihr mich in die richtige Richtungen schubsen könnt. Hier funktioniert das Parsen zwar schon aber ich kann es nicth in die einzelnen Ebenen zerlegen sondern nur stumpf element nach element parsen.
Code:
try {
Vector vRoots = new Vector();
Element nl = d.getDocumentElement();
NodeList list = nl.getChildNodes();
for (int i= 0; i<list.getLength();i++){
Node child = list.item(i);
if(child instanceof Element)
{
Element childElement = (Element)child;
String childName = childElement.getTagName();
vRoots.add(childName);
if (((Element)list.item(i)).getTagName().equals("EXTENSIONS")){
NodeList extensionList = list.item(i).getChildNodes();
xmlTree(extensionList);
}
}
}
} catch (Throwable t) {
t.printStackTrace();
}
}
private void xmlTree(NodeList nl){
NodeList extensionList = nl;
for (int c = 0; c<extensionList.getLength(); c++){
Vector vXMLItems = new Vector();
Node extensionChild = extensionList.item(c);
if(extensionChild instanceof Element){
Element extensionChildElement = (Element)extensionChild;
// System.out.println(extensionChildElement.getTagName());
String extensionChildName = extensionChildElement.getTagName();
if(extensionChildElement.getTagName().trim().equals("NAME")){
Text textNode = (Text)extensionChildElement.getFirstChild();
String text = textNode.getData().trim();
vXMLItems.add(text);
System.out.println(c + text);
}
if(c == 3)jOutlookBarWikiMain.setJOutlookBar(vXMLItems);
NodeList itemList = extensionList.item(c).getChildNodes();
if(itemList != null)xmlTree(itemList);
}
}
}
Ich will nur die Group "Extensions" parsen , nur so als Info für das Vorgehen im Quelltext.