<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    dom4j創(chuàng)建解析xml

    Posted on 2009-07-04 16:55 胡娟 閱讀(666) 評(píng)論(0)  編輯  收藏 所屬分類: JAVA
    所需要的jar

      dom4j-1.6.1.jar

    所要解析和創(chuàng)建的xml文檔樣式

    <?xml version="1.0" encoding="gb2312"?>
    <students>
        
    <student id="1">
            
    <name>hujuan</name>
            
    <age>24</age>
        
    </student>
        
    <student id="2">
            
    <name>fankai</name>
            
    <age>24</age>
        
    </student>
    </students>

    創(chuàng)建xml過程

    package com.hujuan.xml;

    import java.io.File;
    import java.io.FileWriter;
    import java.io.IOException;

    import org.dom4j.Document;
    import org.dom4j.DocumentHelper;
    import org.dom4j.Element;
    import org.dom4j.io.OutputFormat;
    import org.dom4j.io.XMLWriter;


    public class CreateXml {

        
    public void createXml(){
            
    //使用DocumentHelper類創(chuàng)建一個(gè)文檔實(shí)例。DocumentHelper是生成xml文檔節(jié)點(diǎn)的dom4j API工廠類
            Document document = DocumentHelper.createDocument();
            
    //使用addElement()方法創(chuàng)建根元素students,addElement()用于向xml文檔中增加元素
            Element students = document.addElement("students");
            
    //添加注釋
            students.addComment("students 節(jié)點(diǎn)");
            
    //在students節(jié)點(diǎn)下添加子節(jié)點(diǎn)student
            Element student = students.addElement("student");
            
    //給student元素添加屬性
            student.addAttribute("id""1");
            Element name 
    = student.addElement("name");
            Element age 
    = student.addElement("age");
            
    //給元素設(shè)置元素的文本
            name.setText("hujuan");
            age.setText(
    "24");
            
            Element student2 
    = students.addElement("student");
            
    //給student元素添加屬性
            student2.addAttribute("id""2");
            Element name2 
    = student2.addElement("name");
            Element age2 
    = student2.addElement("age");
            
    //給元素設(shè)置元素的文本
            name2.setText("fankai");
            age2.setText(
    "24");
            
            
            
    try {
                OutputFormat format 
    = new OutputFormat("  ",true); 
                format.setEncoding(
    "GB2312");
                
    //輸出創(chuàng)建的xml文檔
                XMLWriter output = new XMLWriter(format);
                FileWriter    fw 
    = new FileWriter(new File("src/bb.xml"));
                output.write(document);
                
                output.close();
            } 
    catch (IOException e) {
                e.printStackTrace();
            }
            
    //在元素中使用addProcessingInstruction()方法增加一個(gè)處理指令
            
    //students.addProcessingInstruction(arg0, arg1)
            
            
        }
    }

    解析xml過程

    package com.hujuan.xml;

    import java.io.File;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.UnsupportedEncodingException;
    import java.util.Iterator;
    import java.util.List;

    import org.dom4j.Document;
    import org.dom4j.DocumentException;
    import org.dom4j.Element;
    import org.dom4j.io.OutputFormat;
    import org.dom4j.io.SAXReader;
    import org.dom4j.io.XMLWriter;

    public class ReadXml {
        
        
    public void readXml(){
            
    //使用SAXReader解析XMl
            SAXReader saxReader = new SAXReader();
            File file 
    = new File("src/student.xml");
            
    try {
                Document document 
    = saxReader.read(file);
                Element students 
    = document.getRootElement();
                List list 
    = students.elements("student");
                
    for(Iterator it = list.iterator();it.hasNext();){
                    Element student 
    = (Element)it.next();
                    
    //獲得得元素的屬性值
                    String id = student.attributeValue("id");
                    System.out.println(id);
                    
    //獲得子元素的屬性
                    String name = student.elementText("name");
                    System.out.println(name);
                    String age 
    = student.elementText("age");
                    System.out.println(age);
                    
    //student.removeChild(name);
                }
                    
    try {
                        OutputFormat format 
    = new OutputFormat("  ",true); 
                        format.setEncoding(
    "GB2312");
                        
    //輸出創(chuàng)建的xml文檔
                        XMLWriter output = new XMLWriter(format);
                        FileWriter    fw 
    = new FileWriter(new File("src/bb.xml"));
                        output.write(document);
                        
                        output.close();
                    } 
    catch (UnsupportedEncodingException e) {
                        e.printStackTrace();
                    } 
    catch (IOException e) {
                        e.printStackTrace();
                    }
                
            } 
    catch (DocumentException e) {
                e.printStackTrace();
            }
        }
        
    }

    測(cè)試用例

    package junit.test;

    import org.junit.Test;

    import com.hujuan.xml.CreateXml;
    import com.hujuan.xml.ReadXml;


    public class XmlTest {

        @Test
        
    public void createXml(){
            CreateXml createXml 
    = new CreateXml();
            createXml.createXml();
        }
        
        @Test
        
    public void readXml(){
            ReadXml readXml 
    = new ReadXml();
            readXml.readXml();
        }
    }

    補(bǔ)充

    添加文檔類型說明

    document.addDocType("bb",null,"file://Dtds/src/bb.dtd");
    輸出
    <!DOCTYPE bb SYSTEM "file://Dtds/src/bb.dtd"

    修改name節(jié)點(diǎn)的值

    for(Iterator ite = studentList.iterator();ite.hasNext();){
        Element EName 
    = (Element)ite.next();
            EName.setText(
    "kay");
    }

    修改student屬性id的值

    //獲得student的屬性
    Attribute att = student.attribute("id");
    //修改student的屬性值
    att.setValue("3");

    刪除studentid屬性
    //刪除student的屬性
    student.remove(att);

    刪除student節(jié)點(diǎn)

    //刪除student節(jié)點(diǎn)
    students.remove(student);

    posts - 28, comments - 5, trackbacks - 0, articles - 1

    Copyright © 胡娟

    主站蜘蛛池模板: 一区二区三区免费在线视频 | 亚洲综合AV在线在线播放| 亚洲一区在线观看视频| 一区二区三区观看免费中文视频在线播放| 亚洲一级片免费看| 国产美女视频免费观看的网站| 亚洲国产精品一区二区九九| 人成免费在线视频| 亚洲精品无码久久久久去q| 两个人看的www免费视频| 国产亚洲美女精品久久久| 你懂的在线免费观看| 国产亚洲精品自在久久| 午夜理伦剧场免费| 亚洲日韩在线视频| 亚洲国产成人片在线观看| 国产特黄一级一片免费| 亚洲AV永久精品爱情岛论坛| 亚洲乱理伦片在线观看中字| 在线jlzzjlzz免费播放| 在线亚洲精品自拍| 最新国产乱人伦偷精品免费网站 | 日韩大片在线永久免费观看网站| 亚洲人成网站色在线入口| 免费无码又爽又刺激网站| 78成人精品电影在线播放日韩精品电影一区亚洲 | 最近的中文字幕大全免费版| 午夜亚洲AV日韩AV无码大全| 中文字幕免费视频一| 亚洲一卡二卡三卡| 免费A级毛片无码A∨男男| 国产午夜无码精品免费看| 亚洲不卡视频在线观看| 免费又黄又爽的视频| 少妇性饥渴无码A区免费 | 精品国产一区二区三区免费| 亚洲一区免费在线观看| 亚洲AV伊人久久青青草原| 四虎国产成人永久精品免费| 亚洲av色香蕉一区二区三区蜜桃| 亚洲一区二区三区影院|