Java中合并XML文档的设计与实现(二)

2014-11-23 21:43:30 · 作者: · 浏览: 20
ent) sub_messageItems.item (j);
    Is done = dupliate (doc_dup, subITEM, sub_messageItem);
   }
  }
  Return is done;
}
   方法writeTo()有两个参数(分别是目标XML文档的Document和文件名),将所得目标XML文档写入文件。

Private Boolean write To (Document doc, String fileName) throws Exception {
  Boolean isOver = false;
  DOM Source doms = new DOM Source (doc);
  File f = new File (fileName);
  Stream Result sr = new Stream Result (f);
  Try
  {
   Transformer Factory tf=TransformerFactory.newInstance ();
   Transformer t=tf.newTransformer ();
   Properties properties = t.getOutputProperties ();
   Properties.setProperty (OutputKeys.ENCODING,"GB2312");
   T.setOutputProperties (properties);
   T.transform (doms, sr);
   IsOver = true;
  }
  Catch (TransformerConfigurationException tce)
  {
   Tce.printStackTrace ();
  }
  Catch (Transformer Exception te)
  {
   Te.printStackTrace ();
  }
  Return isOver;
}

   最后使用测试函数进行测试。对于两个已经存在的XML文件(比如,存在文件D:/a.xml和D:/b.xml,要将b.xml合并到a.xml中),可以测试如下:

Publicstatic voidmain (String [] args) throws Exception {
  Boolean is done = is Merging ("D:/a.xml","D:/b.xml");
  If (is Done) System.out.println ("XML files have been merged.");
  Else System.out.println ("XML files have NOTbeen merged.");
}

   总结

   本文介绍了如何利用JAVA中的XML解析器,合并两个XML文档。当然,在合并的过程中,还可以加入其他的约束条件,比如要求过滤掉特定的元素等。另外,复制元素的插入位置也可以加以限制。