'adding two or more xml files which have same structure as a child to another root element
I am using nu.xom java library, when adding the first xml root node to element, i am getting "MultipleParentException". Can some one please provide solution, Thanks in advance.
Below are sample xml files:
<sqa>
<element1>1<element1>
<structelement>
<element2>2<element2>
<element2>2<element2>
</structelement>
</sqa>
<sqa>
<element1>4<element1>
<structelement>
<element2>5<element2>
<element2>5<element2>
</structelement>
</sqa>
output xml:
<root>
<sqa>
<element1>1<element1>
<structelement>
<element2>2<element2>
<element2>2<element2>
</structelement>
</sqa>
<sqa>
<element1>4<element1>
<structelement>
<element2>5<element2>
<element2>5<element2>
</structelement>
</sqa>
</root>
Solution 1:[1]
Please change your xml as below
<sqa>
<element1>1</element1>
<structelement>
<element2>2</element2>
<element2>2</element2>
</structelement>
</sqa>
<sqa>
<element1>4</element1>
<structelement>
<element2>5</element2>
<element2>5</element2>
</structelement>
</sqa>
it seems you forgot the close the tags element1 and element2 to prevent reference of the previous document
And write code using .copy() method
Builder parser = new Builder();
Builder builder = new Builder();
Document root = builder.build("<root></root>", null);
Document doc = parser.build("aa.xml");
root.getRootElement().appendChild(doc.getRootElement().copy());
doc = parser.build("aa2.xml");
root.getRootElement().appendChild(doc.getRootElement().copy());
System.out.println(root.toXML());
You will get this output
<?xml version="1.0"?>
<root><sqa>
<element1>4</element1>
<structelement>
<element2>5</element2>
<element2>5</element2>
</structelement>
</sqa><sqa>
<element1>1</element1>
<structelement>
<element2>2</element2>
<element2>2</element2>
</structelement>
</sqa></root>
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 |
