`

建立和操作 JDOM 文档

阅读更多
JDOM 使用标准的 Java 编码模式。只要有可能,它使用 Java new 操作符而不用复杂的工厂化模式,使对象操作即便对于初学用户也很方便。例如,让我们看一下如何随便使用 JDOM 建立一个简单的 XML 文档。我们将要建立的结构如清单 1 所示。(从 参考资料上可下载关于本文的完整代码)


清单 1. 建立 XML 文档样本
<?xml version="1.0" encoding="UTF-8"?>
<car vin="123fhg5869705iop90">
  <!--Description of a car-->
  <make>Toyota</make>
  <model>Celica</model>
  <year>1997</year>
  <color>green</color>
  <license state="CA">1ABC234</license>
</car>



注意:我们将建立 示例文档,在下面的清单 2 到清单 7 中有详细描述。

开始,让我们先创建一个根元素,并将其添加到文档中:


清单 2. 创建一个 Document
Element carElement = new Element("car");
Document myDocument = new Document(carElement);



这一步创建一个新 org.jdom.Element ,并将其作为 org.jdom.Document myDocument 的根元素。(如果您使用 参考资料中提供的样本代码,请务必导入 org.jdom.* 。)因为一个 XML 文档必须一直有一个唯一的根元素,所以 Document 将 Element 放在它的构造器中。

下一步,添加 vin 属性:


清单 3. 添加一个 Attribute
carElement.addAttribute(new Attribute("vin", "123fhg5869705iop90"));



添加元素也是很简单的。这里我们添加 make 元素:


清单 4. 元素和子元素
Element make = new Element("make");
make.addContent("Toyota");
carElement.addContent(make);



由于 Element 的 addContent 方法返回 Element ,我们也可以这样写:


清单 5. 用简洁形式添加元素
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 类型:


清单 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();

分享到:
评论
1 楼 林中晨雾 2008-12-22  
请教一下,如果xml文件的子节点中有一个xlink:href属性,用jdom该怎么添加了?
xml形式如下:
<?xml version="1.0" encoding="UTF-8"?>

<images>
<image id="red_ma" x="175" y="25" width="30" height="30" xlink:href="xiangqi_2_files/ma1.gif"  />

</images>
现在我要添加一个image元素,其他的属性都好添加,可是xlink:href不能用addContent()和addNamespaceDeclaration(namespace),因为他们都无法达到要求。

相关推荐

    jdom 读取,建立,修改 xml

    JDOM提供了一个高效、便捷的方式来创建、读取和修改XML文档,它将XML解析成Java对象,使得开发者可以利用Java的强大功能来操作XML数据。 **JDOM读取XML** 在JDOM中,读取XML文档首先需要解析XML文件到一个`...

    java jdom解析xml

    Java JDOM解析XML是Java开发中处理XML文档的一种方法,JDOM全称为Java Document Object Model,它是一个基于Java语言的API,用于创建、修改和读取XML文档。JDOM为XML处理提供了一种高效且方便的解决方案,尤其适用于...

    jdom从MYSQL导出XML文件

    JDOM允许开发者创建、修改和保存XML文档,支持XPath查询,并且与Java集合类完全兼容。 2. **连接MySQL**: 首先,你需要使用Java的JDBC(Java Database Connectivity)API来建立与MySQL服务器的连接。这通常涉及到...

    java利用jdom解析xml文件

    Java中的JDOM库是用于解析XML文档的一种强大的工具。它提供了简单、高效的API来读取、修改和创建XML文件。本篇文章将深入探讨如何利用JDOM...在实际开发中,掌握XML和JDOM的操作对于处理结构化数据和接口通信至关重要。

    java操作xml和sql server 2008必备包(crimson jdom sqljdbc sqljdbc4)

    总之,这个"XML和SQL server综合包"为Java开发者提供了一个基础的工具集,帮助他们高效地处理XML文档和与SQL Server 2008的交互。有了这些库的支持,开发者可以专注于业务逻辑,而不是底层的技术细节。

    jdom从数据库和xml拿数据生成xml

    JDOM是一个纯Java的XML API,它提供了一种高效、便捷的方式来创建、读取和修改XML文档。 在描述中提到,“自己到properties文件里面修改数据库相关的东西,再引入连接MYSQL数据库的包,运行就可以了”,这部分涉及...

    JDOM实现从数据库读取字段生成XML树

    在处理XML文档时,JDOM(Java Document Object Model)是一个纯Java的API,它提供了一种方便的方式来创建、操作和读取XML文档。本篇文章将深入探讨如何利用JDOM从数据库读取字段并生成XML树。 首先,让我们了解JDOM...

    dom4j、jdom、mysql-connector相关jar包

    JDOM的设计目标是简单易用,它提供了直接的DOM接口,使得操作XML文档更加直观。JDOM适用于那些希望直接将XML数据映射到Java对象的场景,但它的性能可能略逊于DOM4J,因为它的内存消耗相对较大。 `mysql-connector`...

    Java实现XML解析【JDom】

    Java中的XML解析是处理XML数据的关键技术,JDom是一个高效的、纯Java的XML处理库,它为Java开发者提供了便捷的方式来创建、修改和读取XML文档。在这个资源中,我们将探讨如何利用JDom来解析XML文件,并从MySQL数据库...

    XML解析技术-JDOM解析.doc

    1. 建立XML文档:除了解析XML文件,JDOM还可以用来创建新的XML文档。 2. 修改XML:你可以添加、删除或修改XML元素和属性,然后使用XMLOutputter将更改写回文件。 3. XSLT转换:JDOM可以与Java的XSLT API结合使用,...

    基于socket通信传递xml(jdom生成)文件的demo(maven管理)集成slf4j

    在本项目中,**JDOM**(Java Document Object Model)是一个用于处理XML的Java API,它提供了一种构建、修改和操作XML文档的简单方式。通过JDOM,我们可以方便地生成XML文件,然后通过Socket通信将其传递给远程...

    spring框架案例学习文档笔记.pdf

    JDOM提供了一种高效且易于使用的API来创建、操作和读取XML数据。在Spring框架中,XML被广泛用作配置文件,理解JDOM的基本使用对阅读和编写Spring配置至关重要。 第三课模拟了Spring的一些基本功能,如bean的创建和...

    自己用解析XML实例

    XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置文件、文档存储等领域。...这个实例将有助于你建立起对XML基础和JDOM库的深刻理解,为进一步的开发工作打下坚实的基础。

    spring框架案例学习文档笔记.docx

    在Spring框架中,XML配置文件是DI的主要载体,因此了解如何使用Jdom来解析和操作XML是至关重要的。通过Jdom,我们可以创建、修改和读取Spring配置文件,以实现对bean的定义和管理。 第三课模拟Spring功能,旨在让...

    Java实现XML导入不同数据库,从数据库导出数据到XML

    JDOM(Java Document Object Model)是一个专为Java设计的XML API,它允许开发人员创建、修改和操作XML文档。JDOM提供了一个直接的面向对象的模型,使得处理XML文档变得简单而高效。在这个项目中,JDOM用于解析XML...

    多种xml解析技术详细介绍

    JDOM也是另一种流行的Java XML处理工具,它提供了一种简单的方法来创建和操作XML文档。 - **优点**:JDOM拥有直观的API设计,易于理解和使用。 - **应用场景**:与DOM4J类似,JDOM也被广泛应用于各种需要处理XML文档...

    基于XML的CAD_CAPP_CAM信息集成技术.pdf

    将JDOM和XQL结合在一起,可以更高效地访问和操作XML文档,进而实现对产品信息的快速处理和集成。 文章最后强调了使用基于XML的信息集成方案所具有的优势,包括灵活的数据模式、可重用的信息模块以及易扩展的数据...

    XML解析教程

    JDOM(注意JDOM决不是DOM扩展,虽然名字差不多,但两者平行的关系 )是一个开源项目,它基于树型结构,利用纯JAVA的技术对XML文档实现解析、生成、序列化以及多种操作。JDOM的目的是成为Java特定文档模型,它简化与XML...

    dom4j-1.6.1架包,读取xml

    它是一个灵活且高效的API,提供了丰富的功能,使得在Java中解析、操作和构建XML文档变得容易。"dom4j-1.6.1"版本是该库的一个稳定版本,发布于2005年,虽然相对较老,但在许多现有的系统中仍然广泛使用。 1. XML...

Global site tag (gtag.js) - Google Analytics