快速业务通道

用JDom轻松整合Java和XML - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23
XML(3) 时间:2010-07-19

下面是读入一个xml文档,并把它又输出的例子:

import java.io.*; import org.Jdom.*; import org.Jdom.input.*; import org.Jdom.output.*; public class PrettyPrinter { public static void main(String[] args) {  // Assume filename argument  String filename = args[0];  try {   // Build the document with SAX and Xerces, no validation   SAXBuilder builder = new SAXBuilder();   // Create the document   Document doc = builder.build(new File(filename));   // Output the document, use standard formatter   XMLOutputter fmt = new XMLOutputter();   fmt.output(doc, System.out);  } catch (Exception e) {   e.printStackTrace();  } } }

读取文档类型

现在,让我们来看一下怎么读取文档的详细内容。许多XML文档都有的一个东西是文档类型,在Jdom中用DocType类来描述。万一你不是XML方面的专家(嘿,不用灰心,你就是我们所要面向的听众),一个文档类型的声明看起来象下边的样子:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

DOCTYPE后边的第一个词揭示文档被强制类型的名字,PUBLIC后边的词是文档类型的公共属性,最后一个词是文档类型的系统属性。文档属性可以上通过文档的getDocType()方法获得,DocType类提供了一组获得文档类型声明的方法。

DocType docType = doc.getDocType(); System.out.println("Element: " + docType.getElementName()); System.out.println("Public ID: " + docType.getPublicID()); System.out.println("System ID: " + docType.getSystemID());

读取文档数据

每一个XML文档必须有一个根元素。这个元素是访问所有XML文档内部信息的起始点。例如:这个文档片段用<web-app>作为根元素:

<web-app id="demo">  <description>Gotta fit servlets in somewhere!</description>  <distributable/> </web-app>

根元素的实例可以在文档中直接获得。

Element webapp = doc.getRootElement();

这样,你就可以访问这个元素的属性(如上边的id)内容和子节点元素。

用JDom轻松整合Java和XML(4)

时间:2010-07-19

访问子节点

XML文档是树型结构的,任何一个元素都有可能包含任何数量的子元素。例如:<web-app>元素有<description>和 <distributable>作为子节点元素。你可以通过很多方法获得一个元素的子元素,getChild()如果没有子元素的话返回NULL。

List getChildren(); // return all children List getChildren(String name); // return all children by name Element getChild(String name); // return first child by name

示例:

// Get a List of all direct children as Element objects List allChildren = element.getChildren(); out.println("First kid: " + ((Element)allChildren.get(0)).getName()); // Get a list of all direct children with a given name List namedChildren = element.getChildren("name"); // Get a list of the first kid with a given name Element kid = element.getChild("name");

当文档结构事先知道的情况下,getchild()方法很容易快速的获得嵌套的元素。给出一个XML文档:

<?xml version="1.0"?>  <linux:config>   <gui>    <window-manager>     <name>Enlightenment</name>     <version>0.16.2<

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号