最近遇到需要用java将结构相同的两个或者多个XML文件合并的问题,在网上找了不短时间,没有找到理想的答案,请各位大哥大姐帮帮忙,谢谢了!
    XML如下
    a.xml:
    <student>
       <ID>
         <URL sqlserver>
            <tt student.id/>
         </URL>
       </ID>
    </student>
   b.xml:
    <student>
       <ID>
         <URL mysql>
            <tt student.id/>
         </URL>
       </ID>
    </student>期望中的结果是
    c.xml
    <student>
       <ID>
         <URL sqlserver>
            <tt student.id/>
         </URL>
         <URL mysql>
            <tt student.id/>
         </URL>
       </ID>
    </student>
请问用java这该怎么解决,谢谢了

解决方案 »

  1.   

    用dom4j把两个文件分别读取出来,然后写到一个文件中你可以用xpath直接定位。
      

  2.   

    具体不是很明白,有没有代码阿
    上面的XML可能有点格式不正确,应该如下
    a.xml
    <Maps>
     <Map ="ID">
     <DB URL="sqlserver">
      <dbcolumn>student.id</dbcolumn> 
      </DB>
      </Map>
    </Maps>b.xml
    <Maps>
     <Map ="ID">
     <DB URL="mysql">
      <dbcolumn>student.id</dbcolumn> 
      </DB>
      </Map>
     </Maps>合并后的结果是
    <Maps>
     <Map ="ID">
     <DB URL="sqlserver">
      <dbcolumn>student.id</dbcolumn> 
      </DB>
     <DB URL="mysql">
      <dbcolumn>student.id</dbcolumn> 
      </DB>
      </Map>
      </Maps>
    当然其中还有很多不同的,哪位大侠能给出实例代码不?谢谢了
      

  3.   

    没人能给你代码,你自己为什么不能自己去学习一下JDOM/DOM4J的API呢,先把这个两个xml读到内存中,然后再合并这个2个XML,API都会告诉你用什么方法能生成一个新的XML,用XML你应该熟悉一下XPATH,这个是专门来查询XML的
      

  4.   

    晕死~!就有用正则表达式就可以搞定的想那么复杂干嘛。。先把a.xml读出存进c.xml然后读出b.xml截去你要读的那段插进c.xml就可以了。 如果还不清楚建议多看看api文挡