Java 使用SAX解析器合并XML
我已经看了下面链接中的讨论- 我只需要使用SAX解析器使用相同的功能,因为我只需要合并两个文件,但它们的大小非常大 请帮忙 文件1Java 使用SAX解析器合并XML,java,xml,Java,Xml,我已经看了下面链接中的讨论- 我只需要使用SAX解析器使用相同的功能,因为我只需要合并两个文件,但它们的大小非常大 请帮忙 文件1 <root> <Item> <a>jhiuo55jhj</a> <b>jhjoiohj</b> <c>jhjh334j</c> </Item> </root> jhiuo55jh
<root>
<Item>
<a>jhiuo55jhj</a>
<b>jhjoiohj</b>
<c>jhjh334j</c>
</Item>
</root>
jhiuo55jhj
jhjoiohj
JH334J
文件2
<root>
<Item>
<x>jhi99jhj</x>
<y>jhyty66jhj</y>
<z>jhxdx3jhj</z>
</Item>
</root>
jhi99jhj
jhyty66jhj
jhxdx3jhj
预期产量
<root>
<Item>
<a>jhiuo55jhj</a>
<b>jhjoiohj</b>
<c>jhjh334j</c>
<x>jhi99jhj</x>
<y>jhyty66jhj</y>
<z>jhxdx3jhj</z>
</Item>
</root>
jhiuo55jhj
jhjoiohj
JH334J
jhi99jhj
jhyty66jhj
jhxdx3jhj
基本解决方案,不包括名称空间或属性
- 使用XMLStreamWriter将处理程序中的内容接收到一个输出中
- 跳过根元素,这样我们就不会将它们放在输出中两次
我建议您在这里使用SAX-DOM方法以获得更好的性能 假设下面是输入xml文件
1) First.xml
<root>
<Item>
<a>1</a>
<b>2</b>
<c>3</c>
</Item>
<Item>
<a>1</a>
<b>2</b>
<c>3</c>
</Item>
</root>
2) Second.xml
<root>
<Item>
<x>11</x>
<y>22</y>
<z>33</z>
</Item>
<Item>
<x>44</x>
<y>55</y>
<z>66</z>
</Item>
</root>
1)First.xml
1.
2.
3.
1.
2.
3.
2) Second.xml
11
22
33
44
55
66
合并这些XML的步骤:
嗨,亚当,是的,这是要求。请帮忙。谢谢亚当,你的快速帮助。让我试试这一个,但我在方法endElement中遇到了错误,它无法解决转储问题,并输出这两个。@Adam,您的程序给出了如下输出,这不是Sugata所要求的。。。jhiuo55jhj JHJJJJJJ334J JHI99JHJJJJJYTY66JHJ jhxdx3jhj Hi Adam,我运行了代码,但它附加了两个XML,我需要将文件1中的每个项与文件2中的每个项合并。i、 e最终输出将具有包含file1和file2中item节点的所有字段的all Items节点。
1) First.xml
<root>
<Item>
<a>1</a>
<b>2</b>
<c>3</c>
</Item>
<Item>
<a>1</a>
<b>2</b>
<c>3</c>
</Item>
</root>
2) Second.xml
<root>
<Item>
<x>11</x>
<y>22</y>
<z>33</z>
</Item>
<Item>
<x>44</x>
<y>55</y>
<z>66</z>
</Item>
</root>