JDom使用详解

原创 2004年06月22日 18:18:00
bromon原创 版权所有 转载请注明

 JDom是不错的API,算得上简单高效,最重要是已经成为jcp的一部分,这个咱得弄弄。不www.jdom.org上写文档的人实在太懒,文档出奇的少,流传得最广的恐怕是IBM上面的一篇《JDom让java XML变得容易》,不过这篇文章只涉及基本的读写操作,远不能胜任实际工作。花了两天时间,把JDom的基本操作整理出来了,涵盖了大部分的操作:元素、属性、命名空间、PI、DTD、Schema,应付一般的应用没什么问题。反正我没有在网上见到更加详尽的版本,你见过的话,请留下连接。暂时来不及编写详细的说明,先帖几段程序,对有经验的Java开发者来说,已经足够了。程序都已经经过了实际的测试,我使用的JDom是0.9版。

 1、创建XML文档:
 import java.io.*;
 import org.jdom.*;
 import org.jdom.input.*;
 import org.jdom.output.*;

 public class CreateXML
 {
  public void Create()
  {
   try
   {
    Document doc = new Document();   
    ProcessingInstruction pi=new ProcessingInstruction("xml-stylesheet","type="text/xsl" href="test.xsl"");
    doc.addContent(pi);
    
    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);
             
             //缩进四个空格,自动换行,gb2312编码
             XMLOutputter outputter = new XMLOutputter("  ", true,"GB2312");
             outputter.output(doc, new FileWriter("test.xml"));
         }catch(Exception e)
         {
          System.out.println(e);
         }
     }
     
     public static void main(String args[])
     {
      new CreateXML().Create();
     }
     
 }

 2、DTD验证的:
 import java.io.*;
 import org.jdom.*;
 import org.jdom.input.*;
 import org.jdom.output.*;

 public class XMLWithDTD
 {
  public void validate()
  {
   try
   {
    SAXBuilder builder = new SAXBuilder(true);
    builder.setFeature("http://xml.org/sax/features/validation";,true);
    Document doc = builder.build(new FileReader("author.xml"));
    
    System.out.println("搞掂");
    XMLOutputter outputter = new XMLOutputter();
    outputter.output(doc, System.out);
   }catch(Exception e)
   {
    System.out.println(e);
   }
   
  }
  public static void main(String args[])
  {
   new XMLWithDTD().validate();
  }
  
 }

 需要说明的是,这个程序没有指明使用哪个DTD文件。DTD文件的位置是在XML中指定的,而且DTD不支持命名空间,一个XML只能引用一个DTD,所以程序直接读取XML中指定的DTD,程序本身不用指定。不过这样一来,好象就只能使用外部式的DTD引用方式了?高人指点。

 3、XML Schema验证的:
 import java.io.*;
 import org.jdom.*;
 import org.jdom.input.*;
 import org.jdom.output.*;

 public class XMLWithSchema
 {
  String xml="test.xml";
  String schema="test-schema.xml";
  public void validate()
  {
   try
   {
    SAXBuilder builder = new SAXBuilder(true);
    //指定约束方式为XML schema
    builder.setFeature("http://apache.org/xml/features/validation/schema";,  true);
    //导入schema文件
    builder.setProperty("http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation";,schema);
    Document doc = builder.build(new FileReader(xml));
    
    System.out.println("搞掂");
    XMLOutputter outputter = new XMLOutputter();
    outputter.output(doc, System.out);
   }catch(Exception e)
   {
    System.out.println("验证失败:"+e);
   }
   
  }
  
 }

 上面的程序就指出了要引入的XML Schema文件的位置。

 系统默认输出是UTF-8,这有可能导致出现乱码。

 读XML文档的技巧在网上已经泛滥,这里就没有再列出来。

使用Jdom解析XML

关于使用jdom解析xml
  • u011526599
  • u011526599
  • 2016年10月23日 17:27
  • 1736

JDom使用详解

【摘 要】JDOM是一个开源项目,它基于树型结构,利用纯JAVA的技术对XML文档实现解析、生成、序列化以及多种操作。 一、JDOM 简介 JDOM是一个开源项目,它基于树型结构,...
  • qq_27376871
  • qq_27376871
  • 2016年11月15日 22:06
  • 1535

JDom解析和生成XML文档

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本人声明。否则将追究法律责任。 作者:永恒の_☆ 地址:http://blog.csdn.net/chenghui0317...
  • ch656409110
  • ch656409110
  • 2013年09月28日 18:58
  • 7428

Java&Xml教程(六)使用JDOM解析XML文件

JDOM 提供了非常优秀的Java XML API来更方便的读取、修改、生成XML文档。JDOM还提供了包装类供用户从SAX、DOM、STAX事件解析、STAX流解析中选择具体的实现。 在本教程中,...
  • Rongbo_J
  • Rongbo_J
  • 2015年12月15日 21:45
  • 1845

Java&Xml教程(八)使用JDOM将Java对象转换为XML

在前面的教程中我们学习了如何使用JDOM解析和修改XML文件内容,本节介绍如何将Java对象转换为XML数据并生成文件。 JDOM的Document类提供了便捷的方法创建元素和属性,XMLOutpu...
  • Rongbo_J
  • Rongbo_J
  • 2016年01月09日 13:48
  • 2146

使用jdom创建xml文本并格式化输出为字符串xml

import java.io.ByteArrayOutputStream; import java.io.IOException; import org.jdom.Attribute; import...
  • lizhi_java
  • lizhi_java
  • 2015年07月10日 10:24
  • 2041

Jdom解析多层xml文件

Jdom解析多层xml文件 一、Jdom简介: JDOM是一个开源项目,它基于树型结构,利用纯JAVA的技术对XML文档实现解析、生成、序列化以及多种操作。     JDOM 直接为JAVA编程...
  • md_shmily92
  • md_shmily92
  • 2015年08月28日 15:25
  • 511

jdom解析xml, API使用、详解、实例说明

jdom
  • han_huayi
  • han_huayi
  • 2013年08月23日 10:37
  • 1241

JSP简单练习-用JDOM读取xml文件

用JDOM解析并输出user.xml 用户ID 用户名 密码 真实姓名 年龄 性别 ...
  • u012804490
  • u012804490
  • 2014年07月30日 12:29
  • 663

jdom生成与解析xml详解

最近关注JDom,转载一下觉得不错的文章,方便以后阅读,在此感谢网路上朋友们共享的好文档! ----------------以下内容为转载---------------------- ...
  • a519781181
  • a519781181
  • 2016年07月29日 14:13
  • 816
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JDom使用详解
举报原因:
原因补充:

(最多只允许输入30个字)