多语言展示
当前在线:1696今日阅读:91今日分享:37

java更新XML的常用方法

下面介绍一下​Java语言编程中更新XML文档的三种常用方法,并且分析这三种方法的优劣。其次,本文还对如何控制Java程序输出的XML文档的格式做了展开论述。 希望你找到更适合自己也更加适合系统的方法。
方法/步骤
1

直接读写XML文档   这也许是最笨最原始的办法了。当程序获取DOM Tree之后,应用DOM模型的Node接口的各个方法对DOM Tree进行更新,下一步应该对原始的XML文档进行更新了。我们可以运用递归的办法或者是应用TreeWalker类,遍历整个DOM Tree,与此同时,将DOM Tree的每一个节点/元素依次写入到预先打开的原始XML文档中,当DOM Tree被遍历完全之后,DOM Tree和原始的XML文档就实现了同步更新。实际中,这个方法极少使用,不过如果你要编程实现自己的XML解析器,这种方法还是有可能用得上的。

2

使用XmlDocument类   使用XmlDocument类?JAXP中分明没有这个类呀!是不是作者搞错了?没有错!就是使用XmlDocument类,确切的说,是使用XmlDocument类的write()方法。   在上文已经提到过,JAXP可以和各种各样的XML解析器联合使用,这次我们选用的XML解析器是Apache Crimson。XmlDocument(org.apache.crimson.tree.XmlDocument)是Apache Crimson的一个类,并不包含于标准的JAXP中,难怪在JAXP的文档中找不到XmlDocument类的芳踪呢。现在问题出来了,如何应用XmlDocument类来实现更新XML文档的功能?在XmlDocument类中提供了下面三个write()方法(根据Crimson最新的版本------Apache Crimson 1.1.3):   上述三个write()方法的主要作用就是输出DOM Tree中的内容到特定的输出介质中,比如文件输出流、应用程序控制台等等。那么又如何使用上述三个write()方法呢?请看下面的Java程序代码片断: String name='fancy';DocumentBuilder parser;DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();try {parser = factory.newDocumentBuilder();Document doc = parser.parse('user.xml');Element newlink=doc.createElement(name);doc.getDocumentElement().appendChild(newlink);((XmlDocument)doc).write(new FileOutputStream(new File('xuser1.xml')));}catch (Exception e) {//to log it }

3

使用Xalan XML Serializer   方法四其实是方法三的一个变种,它需要Apache Xalan和Apache Xerces的支持才能够运行。例子代码如下所示:   这个方法不太常用,而且似乎有点画蛇添足,所以我们就不展开讨论了。完整的例子请参考下列文件: AddRecord4.java(见附件)、user.xml(见附件)。该例子的运行环境为:Windows XP Professional、JDK 1.3.1。为了能够正常编译运行AddRecord4.java这个程序,你需要去下载安装Apache Xalan和Apache Xerces。

推荐信息