网站首页 新闻首页 网页设计图形动画软件编程网站开发办公软件操作系统数据库网络技术认证考试范文资料黑客攻防 书籍教程 进入论坛

JDom处理xml

http://www.diybl.com/ 2008-1-11  网络 点击:  [ 评论 ]
文章搜索:    【点击打包该文章】

关键字: jdom处理xml
1.DOM的缺点主要是由于DOM是一个接口定义语言(IDL),它的任务是在不同语言实现中的一个最低的通用标准,并不是为JAVA特别设计的。DOM API 直接沿袭了 XML 规范。在 XML 中,每件东西都是一个结点,因此您能在 DOM 中找到一个几乎每件东西都可以扩展的基于 Node 的接口和返回 Node 的一系列方法。
在 JDOM 中,XML 元素就是 Element 的实例,XML 属性就是 Attribute 的实例,XML 文档本身就是 Document 的实例。因为 JDOM 对象就是像 Document、Element 和 Attribute 这些类的直接实例,因此创建一个新 JDOM 对象就如在 Java 语言中使用 new 操作符一样容易。JDOM 的使用是直截了当的。

可以理解为:dom是为所有语言提供一种接口api规范,而jdom则只是为java提供一种api规范。 

2.用jdom生成一个xml文件:


package jdom;   
  
import java.io.FileWriter;   
  
import org.jdom.Comment;   
import org.jdom.Document;   
import org.jdom.Element;   
import org.jdom.output.Format;   
import org.jdom.output.XMLOutputter;   
  
public class JDomTest {   
       
    
public static void main(String[] args) throws Exception{   
        
//定义根节点   
        Element root = new Element("student");   
        
//给根节点设置属性   
        root.setAttribute("username""zhangsan").setAttribute("age""20");   
        
//给根节点设置一个Text Child   
        root.addContent("user1");   
        
//设置一个注释   
        root.addContent(new Comment("this is one student!"));   
        
//定义一个子节点   
        Element child = new Element("student1");   
        child.addContent(
new Element("china"));   
           
        root.addContent(child);   
           
           
        
//将根节点添加到Document上   
        Document doc = new Document(root);   
           
        Format format 
= Format.getPrettyFormat();   
        
//设置字符编码,默认为UTF-8   
        format.setEncoding("gbk");   
        
//设置扩展空元素,即<test/>为<test></test>   
        format.setExpandEmptyElements(true);   
        
//子节点和父节点差几个空格,默认是2个   
        format.setIndent("    ");   
        
//将整个Document输出xml文件   
        XMLOutputter outputter = new XMLOutputter(format);   
        outputter.output(doc, 
new FileWriter("jdom.xml"));   
  
           
    }
   
  
}
  
 
生成后的xml文件为:


<?xml version="1.0" encoding="gbk"?>   
<student username="zhangsan" age="20">   
    user1   
    
<!--this is one student!-->   
    
<student1>   
        
<china></china>   
    
</student1>   
</student>  3.利用JDOM读取xml文件


package jdom;   
  
import java.io.FileWriter;   
import java.util.List;   
  
import org.jdom.Attribute;   
import org.jdom.Document;   
import org.jdom.Element;   
import org.jdom.input.SAXBuilder;   
import org.jdom.output.Format;   
import org.jdom.output.XMLOutputter;   
  
public class JDomReaderTest {   
  
    
public static void main(String[] args) throws Exception{   
        
//读取xml文件用的是SAXBuilder   
        SAXBuilder builder = new SAXBuilder();   
        
//获得文档   
        Document doc = builder.build("jdom.xml");   
        
//获得根元素   
        Element root = doc.getRootElement();   
        
//打印出根元素的名字   
        System.out.println(root.getName());   
           
        List
<Attribute> list = root.getAttributes();   
        
for(Attribute attr : list){   
            System.out.println(attr.getName() 
+ ":" + attr.getValue());   
        }
   
           
        Element childStudent1 
= root.getChild("student1");   
        System.out.println(childStudent1.getName());   
           
        
//删除元素   
        root.removeAttribute("age");   
        root.removeChild(
"student1");   
           
        Format format 
= Format.getPrettyFormat();   
        
//设置字符编码,默认为UTF-8   
        format.setEncoding("gbk");   
        
//设置扩展空元素,即<test/>为<test></test>   
        format.setExpandEmptyElements(true);   
        
//子节点和父节点差几个空格,默认是2个   
        format.setIndent("    ");   
        
//将整个Document输出xml文件   
        XMLOutputter outputter = new XMLOutputter(format);   
        
//重新生成一个xml   
        outputter.output(doc, new FileWriter("jdom2.xml"));   
    }
   
  
}
  

jdom2.xml的内容为:



<?xml version="1.0" encoding="gbk"?>   
<student username="zhangsan">   
    user1   
    
<!--this is one student!-->   
</student>

欢迎光临DIY部落,点击这里查看更多文章教程   【点击打包该文章】
如果图片或页面不能正常显示请点击这里 站内搜索:   

文章评论

请您留言

 

最新新闻