Gostaria de unir dois XMLs, sem ter que criar arquivos para isso.
Para carregar os XMLs como objeto estou usando a API commons configuration da apache.
Abaixo tem um exemplo de código, aonde estou tentando unir 2 xmls:
String rootPathXML = "../xml/";
String stringFileXSL = "../xsl/test.xsl";
String stringFileXML = rootPathXML + "datasource.xml";
String stringFileXML1 = rootPathXML + "datasource1.xml";
File fileXSL = new File(stringFileXSL);
File fileXML = new File(stringFileXML);
File fileXML1 = new File(stringFileXML1);
XMLConfiguration mainConfiguration = new XMLConfiguration();
mainConfiguration.setFile(fileXML);
mainConfiguration.setExpressionEngine(new XPathExpressionEngine());
mainConfiguration.load();
XMLConfiguration configuration = new XMLConfiguration();
configuration.setFile(fileXML1);
configuration.setExpressionEngine(new XPathExpressionEngine());
configuration.load();
mainConfiguration.append(configuration);
Quando rodo este código aparece este erro:
Exception in thread "main" java.lang.IllegalArgumentException: prepareAdd: Passed in key must contain a whitespace!
at org.apache.commons.configuration.tree.xpath.XPathExpressionEngine.prepareAdd(XPathExpressionEngine.java:208)
at org.apache.commons.configuration.HierarchicalConfiguration.addPropertyDirect(HierarchicalConfiguration.java:366)
at org.apache.commons.configuration.AbstractHierarchicalFileConfiguration.addPropertyDirect(AbstractHierarchicalFileConfiguration.java:140)
at org.apache.commons.configuration.AbstractConfiguration.addPropertyValues(AbstractConfiguration.java:419)
at org.apache.commons.configuration.AbstractConfiguration.append(AbstractConfiguration.java:1237)
at test.XSLToHTML.main(Unknown Source)
Alguém sabe por que está acotecendo isso?
Abaixo segue os XMLs que estou usando:
datasource.xml:
<?xml version="1.0" encoding="ISO-8859-1"?>
<GetDevices>
<device>
<id>185</id>
<name>Motorola V600</name>
</device>
<device>
<id>67</id>
<name>Sony Ericsson T68i</name>
</device>
</GetDevices>
datasource1.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<GetMMDBCategories>
<category id="14">
<name>Animais</name>
</category>
<category id="15">
<name>Sensual</name>
</category>
</GetMMDBCategories>