以文本方式查看主题 - 计算机科学论坛 (http://bbs.xml.org.cn/index.asp) -- 『 Java/Eclipse 』 (http://bbs.xml.org.cn/list.asp?boardid=41) ---- 用jdom轻松整合java和xml( 转贴) (http://bbs.xml.org.cn/dispbbs.asp?boardid=41&rootid=&id=8738) |
-- 作者:mfc42d -- 发布时间:7/11/2004 1:32:00 PM -- 用jdom轻松整合java和xml( 转贴) jdom java 出处 http://www.javaworld.com/javaworld/jw-05-2000/jw-0518-jdom-p1.html 用jdom轻松整合java和xml(二) 获取XML文档 jdom用org.jdom.Document类的一个实例来描述一个XML文档。这个文档类是一个轻重量级的,它可以包括文档类型、多处理指令的对象、一个根元素和注释对象。你可以不需要构造器而从草稿构造一个文档。 Document doc = new Document(new Element("rootElement")); 在下一篇文章中,我们会讨论从草稿构造一个XML文档是多么的容易。但是现在,我们从一个已存在的文件、一个流、或是一个URL路径中构造我们的文档。 SAXBuilder builder = new SAXBuilder(); 你可以用org.jdom.input包中提供的构造类从任何数据源中构造文档。最近,有两种构造方式:SAXBuilder 和 DOMBuilder。SAXBuilder用sax解析器从文件中构造文档。SAXBuilder侦听sax事件并从内存中建立一个相应的文档。这种方式非常快(基本上和sax一样快),这也是我们推荐的方式。DOMBuilder是另一种可选的方式,它从一个存在的org.w3c.dom.Document对象中建立JDOM文档。它允许jdom轻松的和构建DOM树的工具实现接口。 Jdom的速度有值得期待的提高的潜力通过一个延期的构造器的完成。这个构造器检查XML数据源,但当请求的时候才对它解析。例如:文档的属性当不访问时是不需要解析的。 构造器仍在发展,可以通sql查询、ldap查询和其他的数据格式来够造jdom文档。所以,一旦进到内存中,文档就和建造它的工具没有关系了。 SAXBuilder 和 DOMBuilder构造器允许用户指明他们是否应该轮换,以便确定哪个解析器时间执行解析的任务。 public SAXBuilder(String parserClass, boolean validation); 默认的是用apache的开源 Xerces解析器并且是关闭轮换的。你应该注到DOMBuilder不象一个解析类,倒更象一个适配类。这是因为不是所有的DOM解析器都是相同的api。为了仍让用户选择喜欢的解析器,jdom使用一个对所有的dom解析器适用的公共的api的适配类。这个适配类支持所有流行的dom解析器,包括Apache 的 Xerces, Crimson,IBM 的 XML4J, Sun 的 Project X, 和Oracle 的 parsers V1 and V2.每一个解析器通过正确的调用别的解析器的方法执行标准的接口。这有点象jaxp,除了它支持jaxp所不支持的新的解析器。 输出XML文档 你可以用几种不同的标准输出工具输出一个XML文档。org.jdom.output.XMLOutputter也许是最常用方法。它将xml文档写入一个特定的OutputStream. SAXOutputter工具是另一个选择。它产生基于jdom xml文档的sax事件,你可以把这些送到等待这些sax事件的应用程序那里。相同的方式,DOMOutputter产生一个dom文档,这样你就可以把它送给可以接收dom文档的应用程序。输出xml文档的代码看起来象下边的样子: XMLOutputter outputter = new XMLOutputter(); XMLOutputter用参数定制输出的格式。第一个参数是行缩进的格式;第二个参数是你是否想另起一行。因为机器到机器的原因,为了速度考虑你可以放弃行缩进和另起新行。 XMLOutputter outputter = new XMLOutputter("", false); (译注:这样的话自己看起来会很不好看,而且每一次重新写入的时候都会使这个xml文件变大,所以我建议还是要缩进和另起一行,支持中文的带换行和缩进的格式如下: XMLOutputter outp = new XMLOutputter(“”,true,"GB2312"); outp.setTextTrim(true); outp.output(doc, System.out); 可以参见以前我写的jdom的文章http://www.csdn.net/Develop/read_article.asp?id=20720) 下面是读入一个xml文档,并把它又输出的例子: import java.io.*;
资源: Read Part 2 of "Easy Java/XML Integration with JDOM," Jason Hunter and Brett McLaughlin (July, 2000) to learn how to use JDOM to create and mutate XML: The home of JDOM: |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
46.997ms |