Java JDOM Problem

M

mirkoku

Hi @ all,

ich habe mich jetzt mal wieder mit meinem Java-Xml problem beshcäftigt und nachdem auf meinem alten Thread nichts mehr kam ;) und ich jetzt einen komplett neuen Ansatz gestartet habe habe ich auch einen neuen Post hier rein geworfen.

hier meine xml daten Strucktur wie ich sie bekomme.
Code:
<Configliste>
    <CiscoCatalyst2980>
         <config>testmuh</config>
         <config>testmuh</config>
         <config>testmuh</config>
    </CiscoCatalyst2980>
</Configliste>

So nun muss ich eine methode bauen mit der ich das ganze nach Switchtyen die configs Filtere. Das habe ich so gelöst.

Java:
	public void test (String switchType) throws JDOMException, IOException
	{
		
		org.jdom.Document doc  = readFromFile(pfad+"\\XMLdata.xml");
		XMLOutputter outputter = new XMLOutputter();
		
		org.jdom.Element file = doc.getRootElement();
		
		org.jdom.Element cswitchconfig = file.getChild("switchType").getChild("config");
		String temp = cswitchconfig.getText();
		
		
		System.out.println(temp);
	}

	private static org.jdom.Document readFromFile(String fname)
			throws JDOMException, IOException {
		SAXBuilder sxb = new SAXBuilder();

		return sxb.build(new File(fname));
	}

Nun es funktioniert auch soweit er giebt mir je nach switchtyp der ausgewählt wird 1. config wieder raus nur wie bekomme ichs hin das er mir alle configs ausgiebt ?. Es sind ja nicht immer gleich viele Configs.

Würde mich über ein wneig Brainstorming freuen.

Gruß Danke :)
 
Zuletzt bearbeitet von einem Moderator:
Hi,

Ich hab zwar mit Java wenig am Hut, kenne die verwendeten Klassen nicht und weis auch nicht was "Switchtypen" sein soll, aber wenn ich dich richtig verstanden habe, willst du alle "config" Knoten auflisten. Dann schau dir mal getChild() im Vergleich zu getChildren() an. Damit bekommst du alle Kinderknoten, welche du dann loopen kannst.

Gruß
 
ok werds mir mal angucken thx :)

das mit den Children ;) nur ich weiß nicht wo du eine Klasse "Switchtypen" siehst =) egal trotzdem danke ;)

Gruß
 
so hab maln bissel rumprobiert.

Java:
list.add(cswitchconfig.getChildren());

damit speicher ich mir die Childeren ist eine liste die liste kan ich mir ausgeben lassen das wäre die perfecte lösung nur, speichert er mir das hier in die liste.

[[Element: <config/>], [Element: <config/>], [Element: <config/>]]

und nicht den inhalt von config.

jemand ne idee ?
 
Zuletzt bearbeitet von einem Moderator:
Das "Switchtyen" bzw. "switchtyp" kommt in deinem Text vor.

Code:
list.add(cswitchconfig.getChildren());

Naja, ganz so einfach kann man sich es dann doch nicht machen :-D.

Code:
for(int i=0;i<cswitchconfig.getChildren().size();i++)
{
list.add(((org.jdom.Element)cswitchconfig.getChildren().get(i)).getValue());
}

Hab das jetzt hier eingetippt, also können da Syntaxfehler drin sein. Müsste so aber prinzipiell funktionieren.
 

Neue Beiträge

Zurück