`

JDOM基础

 
阅读更多

JDOM Java Document Object Model

JDOM使用对象树来表示XML.

JDOM使用SAX解析器来解析XML文档,构建JDOM.JDOM本身没有解析器.

JDOM主要API以类为主,而非接口.简化了编程,但限制了灵活性.JDOM使用集合类作为对象存储的容器.

 

 

JDOM共有七个包

org.jdom包中包含了表示XML文档及其组成部分的类.Document,Element,AttributeCDATA.

org.jdom.xpath  包含 XPath 查找类.

org.jom.transform  包含 XSTL 转换类.

org.jdom.adapters  包含 几种主要解析器的适配器类.

org.jdom.filter 包含 过滤文档节点的类.

org.jdom.input包下提供了如下两个类用于构建JDOM.

DOMBuilder:将一份已有的W3CDocument对象转换为JDOMDocument.

SAXBuilder:工具类,可以将来自输入流,磁盘或指定URL所代表的XML文档转换为JDOMDocument.

org.jdom. Output包下提供三个输出工具类.

DOMOutputter  将内存中的JDOM树输出成W3CDOM.

SAXOutputter  将内存中的JDOM树输出到SAX2流中,用于出发SAX2事件监听器.

XMLOutputter  将内存中的JDOM树输出成XML文档.

 

 

 

org.jdom

常用API中只有Parent是接口.

Parent接口代表所有能包含子内容的节点.有连个实现类,Element,Document.

Parent接口中常用方法:

List getContent()  返回当前元素所包含的所有子内容.

Int getContentSize()  返回该元素所包含的所有子内容的大小.

Iterator getDescendants()  获取该元素所包含的所有后代节点.

Document getDocument()  返回该元素所在的XML文档所对应的Document.

Parent getParent()  返回父元素.

Int indexOf()  返回指定子内容在当前元素的子内容列表中的索引.

List removeContent()  删除当前元素的指定子内容,并返回被删除的内容.

 

 

常用类

Document  代表XML文档.它不能是其他对象的内容.所以只是实现了Parent接口.

Content  所有JDOM对象的抽象父类.

 

Content的派生类:

Element  XML 元素.

Text  XML文档中的文本内容.

CDATA  XML文档中的CDATA.

DocType  XML文档中的DOCTYPE声明.

ProcessingInstruction  XML文档里的处理指令.

EntityRef  XML文档中的实体引用.

Comment  XML文档中的注释内容.

 

Attribute  XML文档中的属性.属性是附属于某个元素的.所以Attribute单独的一个类.

 

 

创建XML文档

Document doc=new Document();    //创建文档.

Element eltRoot=new Element(“student”);    //创建一个元素.

doc.setRootElement(eltRoot);    //把元素作为文档的根元素.

 

或者在构造Document,传入根元素

Element eltRoot=new Element(“student”);    //创建一个元素.

Document doc=new Document(eltRoot);    //创建文档,且把元素作为文档的根元素.

 

 

添加属性

eltRoot.setAttribute(“sn”,”10”);

 

添加子元素并设置元素内容

Element eltName=new Element(“name”)  //创建元素,子元素.

Element eltAge=new Element(“age”)  //创建元素,子元素.

 

eltName.setText(“剑圣”);  //给元素添加内容.

eltAge.setText(“128”);  //给元素添加内容.

 

eltRoot.addContent(eltName);  //给元素添加子元素

eltRoot.addContent(eltAge);  //给元素添加子元素

 

输出文档

org.jdom. Output包下

DOMOutputter  将内存中的JDOM树输出成W3CDOM.

SAXOutputter  将内存中的JDOM树输出到SAX2,用于出发SAX2事件监听器.

XMLOutputter  将内存中的JDOM树输出为字节流.

例如,

XMLOutputter xmlOut=new XMLOutputter();

xmlOut.output(doc,System.out);

输出可以选择输出到文件或套接字流,或控制台输出流中.

xmlOut.output(doc,new FileOutputStream(“student.xml”));

格式化输出

Format,用于设置输出文档的字符编码,设置行分隔符,以及设置缩进字符串.

public static Format getCompactFormat()

采用紧凑格式.即对文档中的空白进行规范化,使用UTF-8编码,不展开空元素,包含声明和编码,以及使用默认的实体转义策略.

 

public static Format getRowFormat()

采用原始格式.即对文档中的空白保持不变,使用UTF-8编码,不展开空元素,包含声明和编码, 以及使用默认的实体转义策略.

 

public static Format getPrettyFormat()

采用美化的格式.即使用两个空格作为缩进来输出文档, 不展开空元素,包含声明和编码,以及使用默认的实体转义策略.

 

下面采用美化的格式输出文档至控制台输出流,设置字符编码为GB2312.

Format fmt=Format.getPrettyFormat();    //得到格式对象.

fmt.setEncoding(“GB2312”);    //设置格式对象的编码

fmt.setIndent(“  ”);      //设置格式对象的缩进

xmlOut.setFormat(fmt);   //输出对象设置格式(即把格式对象绑定到输出对象)

xmlOut.output(doc,System.out);    //输出对象把文档对象传至输出流.

 

构建JDOM

org.jdom.input包下提供了如下两个类用于构建JDOM.

DOMBuilder:将已有的W3C DOMDocument对象或Element对象转换为JDOM的对象.

SAXBuilder: 使用一个第三方的SAX解析器,将不同输入源(输入流,磁盘或指定URL所代表的XML文档)转换为JDOMDocument.

 

DOMBuilder类构造JDOM文档对象.

DocumentBuilderFactory dbf= DocumentBuilderFactory.newInstance();  //构建W3C DOM解析器工厂

DocumentBuilder db= dbf.newDocumentBuilder();  //构建解析器

File file=new File(“students.xml”);  //引用文件

org.w3c.dom.Document document=db.parse(file);  //得到W3C DOM document

DOMBuilder domBuilder=new DOMBuilder();    //创建JDOMdomBuilder

org.jdom.Document doc=domBuilder.builder(document);  // W3C DOM document

转为 JDOM document.

 

 

访问根元素

使用Document类的getRootElement()方法,用于返回文档的根元素.

Element root=doc.getRootElement();

 

 

访问子元素

Element类中定义了获取子元素的方法.

要得到某个元素的所有子元素.

java.util.List childrenList=element.getChildren();  //

 

要得到某个元素的指定名称的子元素

java.util.List childrenList=element.getChildren(“student”);  //

 

要得到指定名称元素的第一个子元素

java.util.List childrenList=element.getChild (“student”);  //

 

要删除某个元素的指定名称的所有子元素

element.removeChildren (“student”);  //

 

要删除某个元素的指定名称的第一个元素

element. removeChildren (“student”);  //

 

 

访问属性

Element类中定义了访问元素属性的方法.

要得到某元素的所有属性

java.util.List attrList=element.getAttributes();  //

 

要得到指定的属性

Attribute attr=element.getAttribute(“sn”);  //

 

要得到指定的属性的值

String attrValue=element.getAttributeValue(“sn”);  //

 

要删除指定的属性

element.removeAttribute (“sn”);  //

 

验证XML文档

使用DTD验证

在构造SAXBuilder对象时传入参数true.

 

 

使用Scheme验证

 

 

 

 

分享到:
评论

相关推荐

    java开发教程Jdom使用教程

    Java开发中的JDOM是一个专门针对XML处理的开源库,它以Java为中心,提供了一种简洁、高效的API来解析、创建、修改和序列化XML文档。JDOM的设计目标是结合SAX和DOM的优点,同时减少它们的不足,使得XML处理更加直观和...

    jdom包

    ### JDOM基础概念 1. **Document对象**:在JDOM中,XML文档被表示为`org.jdom.Document`对象。这个对象包含了整个XML文档的结构,包括根元素(root element)和其他所有元素。 2. **Element对象**:`org.jdom....

    jdom驱动包

    **一、JDOM基础概念** 1. **Document对象**:在JDOM中,XML文档被表示为`org.jdom.Document`对象。这个对象包含了整个XML文档的根元素和相关的元数据。 2. **Element对象**:XML文档中的每个元素对应一个`org.jdom...

    Jdom解析XML

    **JDOM基础** JDOM的主要目标是提供一个完全基于Java的XML解决方案,使得XML文档可以被高效地映射到Java对象上。通过JDOM,开发者可以使用Java API来处理XML文档,无需了解底层的SAX或DOM解析器的工作原理。 **...

    JAVA读XML:sax,dom,jdom,dom4j的比较以及选择.doc

    DOM4J是在JDOM基础上发展起来的,它扩展了XML文档的表示,包括XPath支持、XML Schema支持以及事件驱动的处理方式,适用于大型或流式文档。DOM4J通过接口和抽象类提供了更高的灵活性,但API相对复杂。它支持DOM4J API...

    jdom英文帮助文档

    1. **基础概念**:了解XML的基础知识,包括元素(Element)、属性(Attribute)、文本(Text)、注释(Comment)等基本组成单元,以及它们在JDOM中的对应类。 2. **Element类**:JDOM中的主要类,代表XML文档中的...

    JDOM使用详解及实例

    1. `org.jdom`:包含所有与XML文档元素相关的Java类,如Attribute、Element、Comment、Document、Text等,这些都是构建和操作XML文档的基础。 2. `org.jdom.adapters`:提供了与DOM适配的类,使得JDOM可以与基于DOM...

    jdom处理xml例子

    **XML基础** XML(Extensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置文件和文档存储等领域。XML文档结构包含元素(Element)、属性(Attribute)、文本(Text)等组件。每个XML文档...

    jdom源码及jar

    在Android开发中,AndroidManifest.xml文件是至关重要的,因为它包含了应用程序的基础配置信息,如应用名称、权限、活动、服务、广播接收器等。默认情况下,AndroidManifest.xml中的节点数据是连续的,不支持直接...

    jdom-1.1.tar.gz

    **XML基础** XML(Extensible Markup Language)是一种标记语言,它允许我们以结构化的方式存储和传输数据。XML文档由元素、属性、文本节点等组成,具有自解释性,使得人类和机器都能理解其中的内容。JDOM就是用来...

    jdom-2.0.2.zip

    7. **lib**目录:可能包含了JDOM运行所需的其他依赖库,例如SAX和DOM等XML解析器的基础库。 JDOM的核心优势在于它的设计理念:完全基于Java,因此在性能和内存使用上都优化得相当好。它提供了一种面向对象的方式来...

    jdom 帮助文档

    **XML的基础知识** XML(eXtensible Markup Language)是一种标记语言,广泛用于数据交换、配置文件和文档存储。XML文档由元素、属性、文本内容和处理指令等组成。它的主要特点包括: 1. **自描述性**:每个XML...

    java中四种操作xml方式的比较.pdf

    DOM4J是在JDOM基础上发展起来的,它不仅提供了XML文档表示,还增加了XPath支持、XML Schema支持和事件处理功能,特别适合处理复杂的XML操作。DOM4J允许选择不同的构建文档表示的方法,包括DOM和SAX,这使其在灵活性...

    java操作xml的四种方法

    **概述**:DOM4J是另一个针对Java的高性能XML处理库,它是在JDOM基础上发展而来的,提供了更多的功能和优化。 **特点**: - **智能分支**:DOM4J起源于JDOM的一个分支,但在此基础上进行了大量的改进和发展。 - **...

    dom4j-1.6.1 和 jdom

    4. **文档操作**:dom4j可以创建新的XML文档,或者在现有文档基础上添加、删除和修改元素、属性。 5. **序列化**:能够将XML文档对象序列化为字符串或输出到文件,实现XML文档的保存和传输。 **JDOM** JDOM是另一...

    jdom 1.1 版本

    JDOM 1.1是这个库的一个重要版本,它在早期版本的基础上进行了一系列的改进和增强,以满足开发者对XML处理的更高需求。 1. **XML解析与构建** JDOM 1.1提供了两种主要的方式来处理XML:SAX(Simple API for XML)...

    jdom-2.0.4

    JDOM 2.0.4是该库的一个版本,它在前一版本的基础上进行了改进和优化,以提供更好的稳定性和性能。 1. **JDOM的基本结构** JDOM的核心类包括`Element`,`Attribute`,`Document`和`Namespace`等。`Element`表示XML...

    关于Jdom和Jdom的一些资料

    这些基础对于理解如何使用JDOM至关重要,因为它们定义了XML文档的规则和约束。此外,教程还会涉及SAX和DOM解析器,这是JDOM工作原理的基础。 在JavaOne大会上,JDOM的介绍可能涉及了JDOM的最新版本特性、性能优化、...

    jdom JAR包

    **XML基础** XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置文件、文档存储等领域。它的结构清晰,易于阅读和编写,同时也便于机器解析和生成。XML文档由元素、属性、文本...

    利用jdom操作xml文档

    ### 利用 JDOM 操作 XML 文档 #### 一、引言 JDOM(Java Document Object Model)是...通过这些基础操作,您可以轻松地使用 Java 来管理和操作 XML 数据。JDOM 的简洁性和易用性使其成为处理 XML 数据的理想选择之一。

Global site tag (gtag.js) - Google Analytics