Apache Commons Configuration - Daten schreiben

MrCastle

Mitglied
Hi Community,

ich habe ein kleines Problem mit der XMLConfiguration Klasse im Apache Commons Configuration Paket. Ich möchte eigentlich nur ein Attribut schreiben, allerdings scheint das nicht zu funktionieren wie es in den Beispielen beschrieben wird. (Oder ich mache irgendwas falsch, was wahrscheinlich ist)

Mein XML Dokument sieht vom Schema her ungefähr so aus:
Code:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<root>
	<keypart1>
		<keypart2 attribut="">
		<keypart2 attribut="">
		<keypart2 attribut="">
		<keypart2 attribut="">
	</keypart1>
</root>

Ich möchte eigentlich nur einen Wert in das Attribut "attribut" schreiben, allerdings wollen meine Lösungsversuche nicht klappen.

Hier die Versuche mit den entsprechenden Ergebnissen:

XMLConfiguration config = new XMLConfiguration("conf\\conf.xml");
config.setProperty("keypart1.keypart2(" + index + ") @attribut", value);
config.save();

--> Wert wird als Text in den Tag geschrieben.

XMLConfiguration config = new XMLConfiguration("conf\\conf.xml");
config.setProperty("keypart1.keypart2(" + index + ").@attribut", value);
config.save();

--> leer

XMLConfiguration config = new XMLConfiguration("conf\\conf.xml");
config.setProperty("keypart1.keypart2(" + index + ").attribut", value);
config.save();

--> Extra "attribut" tag unter keypart1

XMLConfiguration config = new XMLConfiguration("conf\\conf.xml");
config.setProperty("keypart1.keypart2(" + index + ") attribut", value);
config.save();

--> Wert wird als Text in den Tag geschrieben.

Und wenn ich die XPath Engine mit entsprechender Syntax verwende:

XMLConfiguration config = new XMLConfiguration("conf\\conf.xml");
config.setExpressionEngine(new XPathExpressionEngine());
config.setProperty("keypart1/keypart2[" + index + "] @attribut", value);
config.save();

--> nichts passiert

XMLConfiguration config = new XMLConfiguration("conf\\conf.xml");
config.setExpressionEngine(new XPathExpressionEngine());
config.setProperty("keypart1/keypart2[" + index + "].@attribut", value);
config.save();

--> nichts passiert

XMLConfiguration config = new XMLConfiguration("conf\\conf.xml");
config.setExpressionEngine(new XPathExpressionEngine());
config.setProperty("keypart1/keypart2[" + index + "] attribut", value);
config.save();

--> nichts passiert

XMLConfiguration config = new XMLConfiguration("conf\\conf.xml");
config.setExpressionEngine(new XPathExpressionEngine());
config.setProperty("keypart1/keypart2[" + index + "].attribut", value);
config.save();

--> nichts passiert

Hier scheint es wohl an was anderem zu liegen, möglicherweise habe ich da irgendwas bei der Engine vergessen.

Wäre sehr dankbar für euren Input :)
Gruß
MrCastle
 
Zurück