Bond - James D. wrote:
Bond - James D. wrote:
Hopefully this is a simple one. I have a semi-non-standard xml file that
has attributes in the Top-level element and I'm not able to set the
attributes on it. How would I do that with XMLConfiguration? I tried the
following but it didn't work:
xmlCfg.setProperty("[EMAIL PROTECTED]", ""+System.currentTimeMillis());
Hm, your code should work. I added the following unit test, which runs
successful:
/**
* Tests setting an attribute on the root element.
*/
public void testSetRootAttribute() throws ConfigurationException
{
conf.setProperty("[EMAIL PROTECTED]", "true");
assertEquals("Root attribute not set", "true", conf
.getString("[EMAIL PROTECTED]"));
conf.save(testSaveConf);
XMLConfiguration checkConf = new XMLConfiguration();
checkConf.setFile(testSaveConf);
assertTrue("Attribute not found after save", checkConf
.containsKey("[EMAIL PROTECTED]"));
}
(where conf is a XMLConfiguration). As you can see, I also only specify
the attribute part of the key.
Can you double-check with this code? Or can you provide an example code
fragment, which does not work?
Oliver
Ok, I can't get it to work ... here's my code:
String xmlTemplate = "c:\\temp\\ordermessage.xml";
String newXmlTemplate = "c:\\temp\\changedordermessage.xml";
XMLConfiguration xmlCfg = new XMLConfiguration(xmlTemplate);
xmlCfg.setValidating(false);
xmlCfg.setEncoding("UTF-8");
xmlCfg.setProperty("[EMAIL PROTECTED]", ""+System.currentTimeMillis());
xmlCfg.setProperty("[EMAIL PROTECTED]", new Date().toString());
FileWriter outter = new FileWriter(newXmlTemplate);
xmlCfg.save(outter);
outter.close();
xmlCfg.clear();
And here is the XML file:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE cXML SYSTEM "http://xml.cXML.org/schemas/cXML/1.2.008/cXML.dtd">
<cXML payloadID="29066032971189013758490" timestamp="2007-09-12T09:34:16-05:00">
<Header>
<To>
<Credential domain="testID">
<Identity>12345</Identity>
</Credential>
</To>
</Header>
</cXML>
After some further testing: you are right, there seems to be a bug! If
the attribute already exists, a new value is not written. Can you open a
ticket in jira [1], please?
Thanks.
Oliver
[1]
http://commons.apache.org/configuration/issue-tracking.html
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]