快速业务通道

Java6 WebService人薩極撃廾 - 園殻秘壇利

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19
用简洁形式添加元素

carElement.addContent(new Element("make").addContent("Toyota"));

这两个语句完成了相同的工作。有些人认为第一个示例可读性更好,但是如果您一次建立许多元素,您会觉得第二个示例可读性更好。要完成构建文档:

清单 6. 添加其余的元素

carElement.addContent(new Element("model").addContent("Celica")); carElement.addContent(new Element("year").addContent("1997")); carElement.addContent(new Element("color").addContent("green")); carElement.addContent(new Element("license")    .addContent("1ABC234").addAttribute("state", "CA"));

您会注意到对于 license 元素,我们不但添加了元素的内容,还为其添加了一个属性,表明许可已被发出了这个状态。这是因为 Element 的 addContent 方法总是返回 Element 本身,而不是一个无效的声明。

用同样的方法添加注释部分或其它标准 XML 类型:

用JDOM简化XML编程(3)

时间:2011-02-08 IBM Wes Biggs

清单 7. 添加一条注释

carElement.addContent(new Comment("Description of a car"));

操作文档也是用类似方式。例如,要引用 year 元素,我们使用 Element 的 getChild 方法:

清单 8. 访问子元素

Element yearElement = carElement.getChild("year");

该语句实际上将返回第一个元素名为 year 的子 Element 。 如果没有 year 元素,则调用返回一个空值。注意,我们不必回溯来自任何类似于 DOM Node 接口的返回值 -- Element 的子元素就是 Element 。用类似的方式,我们可把 year 元素从文档中除去:

清单 9. 除去子元素

boolean removed = carElement.removeChild("year");

这次调用将只除去 year 元素;文档的其余部分保持不变。

到目前为止,我们已经涵盖了文档的生成和操作。要将完成的文档输出至控制台,可使用 JDOM 的 XMLOutputter 类:

清单 10. 将 JDOM 转化为 XML 文本

try {    XMLOutputter outputter = new XMLOutputter(" ", true);    outputter.output(myDocument, System.out); } catch (java.io.IOException e) {    e.printStackTrace(); }

XMLOutputter 有几个格式选项。这里我们已指定希望子元素从父元素缩进两个空格,并且希望元素间有空行。 XMLOutputter 可输出到 Writer 或 OutputStream 。为输出到文件,我们可以简单地将输出行简化为:

清单 11. 使用 FileWriter 输出 XML

FileWriter writer = new FileWriter("/some/directory/myFile.xml"); outputter.output(myDocument, writer); writer.close();

与其它方法良好协作:和现有的 XML 工具进行互操作

JDOM 的一个有趣特征是和其它 API 有互操作性。使用 JDOM,不仅能把文档输出到 Stream 或 Reader ,还可将文档作为 SAX Event Stream 或作为 DOM Document 。这种灵活性允许 JDOM 能在多种环境下使用或被添加到已经在使用另一种方法处理 XML 的系统中去。正如我们在后面一个示例中所看到的,它还允许 JDOM 使用其它的还不能识别 JDOM 的数据结构的 XML 工具。

JDOM 的另一个用处是它能够读取并操作现有的 XML 数据。使用 org.jdom.input 中的一个类可以阅读结构很规范的 XML 文件。在这个示例中我们使用 SAXBuilder :

清单 12. 使用 SAXBuilder 对 XML 文件进行语法分析

try {   SAXBuilder builder = new SAXBuilder();   Document anotherDocument =    builder.build(new File("/some/directory/sample.xml")); } catch(JDOMException

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号