`
lqwforever
  • 浏览: 32402 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

JDOM创建XML例子

阅读更多
        如果不为其设置,将会默认编码为utf-8,并且不会换行等,生成的XML就会不美观,在网上搜索了,原到有采用这样设置编码的:
Document doc = new Document(); //内存中已构造好的jdom Document对象 
XMLOutputter output = new XMLOutputter(2, true, "GB2312"); //2是指缩进2个字符,true表示用换行,--增强可读性 
FileOutputStream out = new FileOutputStream(fileName); 
output.output(doc, out);

        这是JDOM1.0以前支持的设置编码方法,以后的版本就没有了,JDOM已经将这一块功能给剥离出来,形成了Format对象,所有的设置都在该类当中处理,如下:
XMLOutputter out;     
Format format = Format.getCompactFormat();     
format.setEncoding("gb2312"); //setEncoding就是设置编码了    
format.setIndent("         "); //setIndent是设置分隔附的意思,一般都是用空格,就是当你新节点后,自动换行并缩进,有层次感,如果这样写setIndent(""),就只有换行功能,而不会缩进了,如果写成setIndent(null),这样就即不换行也不缩进,全部以一行显示了,默认的就是这样的效果,不好看。
out = new XMLOutputter(format);     
out.output(xmlDoc, new FileOutputStream("xml文件路径"));

完整的JDOM创建XML文件代码如下:
package com.star.jdbc; 

import java.io.FileOutputStream; 

import org.jdom.Document; 
import org.jdom.Element; 
import org.jdom.Namespace; 
import org.jdom.Text; 
import org.jdom.output.Format; 
import org.jdom.output.XMLOutputter; 

import junit.framework.TestCase; 

public class TestXML extends TestCase { 
    
  public void testCreate(){ 
    try{ 
      Document doc = new Document(); 
        
      Namespace ns = Namespace.getNamespace("http://www.bromon.org"); 
      Namespace ns2 = Namespace.getNamespace("other", "http://www.w3c.org"); 
        
      Element root = new Element("根元素", ns); 
      root.addNamespaceDeclaration(ns2); 
      doc.setRootElement(root); 
        
      Element el1 = new Element("元素一"); 
      el1.setAttribute("属性", "属性一"); 
      Text text1 = new Text("元素值"); 
        
      Element em = new Element("元素二").addContent("第二个元素"); 
      el1.addContent(text1); 
      el1.addContent(em); 
        
      Element el2 = new Element("元素三").addContent("第三个元素"); 
        
      root.addContent(el1); 
      root.addContent(el2); 
        
      XMLOutputter outputter = null; 
      Format format = Format.getCompactFormat(); 
      format.setEncoding("GB2312"); 
      format.setIndent("    "); 
      outputter = new XMLOutputter(format); 
        
      outputter.output(doc, new FileOutputStream("C:\\a.xml")); 
    }catch(Exception e){ 
      e.printStackTrace(); 
    } 
  } 
}

        当用JDK自带的解析器来解析XML文件时,DocumentBuilder的parse()方法接收一个XML文档名作为输入参数,返回一个Document对象,这个Document对象就代表了一个XML文档的树模型。以后所有的对XML文档的操作,都与解析器无关,直接在这个Document对象上进行操作就可以了。
提示:如果XML文件是放在当前WEB应用的"WEB-INF/classes"目录下时,则在读取XML文件前要设置parse()方法中的参数,如本例在parse()方法中设置的参数为:this.getClass().getResourceAsStream("/user.xml");这种方法安全性较好,因为WEB-INF目录是客户端无法访问的文件夹。如果XML文件是放在与JSP文件同一目录中,则参数应改为:pageContext.getServletContext().getRerouceAsStream("/user.xml");。提倡使用前一种方法。

转自:http://gang4415.blog.51cto.com/225775/248714/
分享到:
评论

相关推荐

    jsp 下xml例子

    在jsp页面下创建xml文件,对xml文件添加,读取操作。

    一写小例子,dom4J,dom,jdom,sax解析和创建XML文件,代码虽然简单,但是功能实现,适合入门

    现在流行的几种解析xml的方法,都做了相应的创建和解析XML的demo,虽然有点简单,但是和新手入门

    dom4j创建xml

    一个用dom4j创建xml文件的例子,该xml文件是多层节点的例子

    Java解析XML的jar包+四种解析方法

    java解析xml的四种方法的比较,还有四种方法所用到的jar包 附带程序例子 1.DOM生成和解析XML文档 2.SAX生成和解析XML文档 3.DOM4J生成和解析XML文档 4.JDOM生成和解析XML

    xml入门教程/xml入门教程

    &1.XML简介 XML的背景 1) XML代表可扩展的标记语言(eXtensible Markup Language); 2) XML由W3C联盟发展维护; 3) XML是一种元语言,可以用来定义其它标签语言; 4) XML没有定义任何标记,它提供了一种工具定义...

    JAVA编程百例+JAVA面试题集十套(经典)

    实例70 使用JDOM解析XML 实例81 SERVLET读取COOKIE数据 实例86 JSP使用数据连接池 实例99 连接数据库 实例100 上传文件 面试题(很多企业都常常从这些面试题库中选题作为笔试题): Java就业面试题大全.pdf Java最...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    本书语言生动、通俗易懂、讲解细致,大部分章节都提供了多个例子,而且很多例子都是目前web开发中经常使用的功能,具有相当的实用价值。本书不仅可以作为java web开发的学习用书,还可以作为从事java web开发的...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    本书语言生动、通俗易懂、讲解细致,大部分章节都提供了多个例子,而且很多例子都是目前web开发中经常使用的功能,具有相当的实用价值。本书不仅可以作为java web开发的学习用书,还可以作为从事java web开发的...

    JAVA编程百例(照着例子更容易!)

    实例70 使用JDOM解析XML 实例71 使用JDOM操作XML 实例72 欢迎进入APPLET世界 实例73 传递参数 实例74 监测鼠标事件 实例75 监测键盘事件 实例76 在APPLET中使用SWING 实例77 应用JAR包 实例78 播放声音 实例79 一个...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    本书语言生动、通俗易懂、讲解细致,大部分章节都提供了多个例子,而且很多例子都是目前web开发中经常使用的功能,具有相当的实用价值。本书不仅可以作为java web开发的学习用书,还可以作为从事java web开发的...

    JAVA操作XML

    本工程主要展示了java操作xml文件的四种方式,四种方式中最流行的JDOM有创建,修改等的例子

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part5

    本书语言生动、通俗易懂、讲解细致,大部分章节都提供了多个例子,而且很多例子都是目前web开发中经常使用的功能,具有相当的实用价值。本书不仅可以作为java web开发的学习用书,还可以作为从事java web开发的...

    DWR.xml配置文件说明书(含源码)

    举个例子来说:下面的java代码没有办法对List集合中的对象进行转换. public class Check { public void setLotteryResults(List nos) { ... } } Singatures配置允许我们对DWR要操作的对象类型进行配置.对于了解...

    java源码包---java 源码 大量 实例

    两个例子,无状态SessionBean可会话Bean必须实现SessionBean,获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,计算利息等;在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将...

    java源码包2

    两个例子,无状态SessionBean可会话Bean必须实现SessionBean,获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,计算利息等;在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将...

    java源码包3

    两个例子,无状态SessionBean可会话Bean必须实现SessionBean,获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,计算利息等;在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将...

    java源码包4

    两个例子,无状态SessionBean可会话Bean必须实现SessionBean,获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,计算利息等;在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    Java EJB中有、无状态SessionBean的两个例子 两个例子,无状态SessionBean可会话Bean必须实现SessionBean,获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,计算利息等;在有状态SessionBean中,用...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    Java EJB中有、无状态SessionBean的两个例子 两个例子,无状态SessionBean可会话Bean必须实现SessionBean,获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,计算利息等;在有状态SessionBean中,用...

Global site tag (gtag.js) - Google Analytics