<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 © 胡娟

    主站蜘蛛池模板: 无码人妻一区二区三区免费n鬼沢| 亚洲欧洲日产国码无码网站 | 亚洲国产精品第一区二区三区| 精品亚洲国产成人| **一级毛片免费完整视| 亚洲AV无码乱码国产麻豆| 可以免费观看的国产视频| 亚洲国产精品久久久久| 2021在线观看视频精品免费| 久久久精品国产亚洲成人满18免费网站| 亚洲av日韩av欧v在线天堂| 9久热精品免费观看视频| 免费大片黄在线观看| 亚洲国产精品成人| 亚洲人成电影在线播放| 一级毛片在线免费观看| 亚洲电影在线免费观看| 青春禁区视频在线观看直播免费 | 视频免费在线观看| 亚洲色偷偷综合亚洲AV伊人蜜桃| 99精品国产免费久久久久久下载| 久久亚洲精品无码av| 亚洲视频免费播放| 亚洲精品无码MV在线观看| 国产伦精品一区二区三区免费迷 | 亚洲人成人77777网站不卡| 亚洲一区二区三区在线观看精品中文| 亚洲人成网站色在线入口| 国产免费久久久久久无码| 精品无码无人网站免费视频 | 女人张开腿等男人桶免费视频| 少妇性饥渴无码A区免费 | 人妻巨大乳hd免费看| 亚洲人成网站18禁止| 亚洲精品二三区伊人久久| 亚洲av日韩av天堂影片精品| 国产精品亚洲高清一区二区| 久久久无码精品亚洲日韩按摩 | 亚洲短视频在线观看| 亚洲综合一区二区精品导航| 亚洲Aⅴ在线无码播放毛片一线天|