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

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

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

    dom4j創建解析xml

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

      dom4j-1.6.1.jar

    所要解析和創建的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>

    創建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類創建一個文檔實例。DocumentHelper是生成xml文檔節點的dom4j API工廠類
            Document document = DocumentHelper.createDocument();
            
    //使用addElement()方法創建根元素students,addElement()用于向xml文檔中增加元素
            Element students = document.addElement("students");
            
    //添加注釋
            students.addComment("students 節點");
            
    //在students節點下添加子節點student
            Element student = students.addElement("student");
            
    //給student元素添加屬性
            student.addAttribute("id""1");
            Element name 
    = student.addElement("name");
            Element age 
    = student.addElement("age");
            
    //給元素設置元素的文本
            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");
            
    //給元素設置元素的文本
            name2.setText("fankai");
            age2.setText(
    "24");
            
            
            
    try {
                OutputFormat format 
    = new OutputFormat("  ",true); 
                format.setEncoding(
    "GB2312");
                
    //輸出創建的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()方法增加一個處理指令
            
    //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");
                        
    //輸出創建的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();
            }
        }
        
    }

    測試用例

    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();
        }
    }

    補充

    添加文檔類型說明

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

    修改name節點的值

    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節點

    //刪除student節點
    students.remove(student);

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

    Copyright © 胡娟

    主站蜘蛛池模板: 国内大片在线免费看| 亚洲第一网站免费视频| 国产在线a不卡免费视频| 亚洲欧美日韩综合久久久| 免费做爰猛烈吃奶摸视频在线观看 | 114一级毛片免费| 亚洲视频国产精品| 又粗又大又黑又长的免费视频 | 亚洲AV无码日韩AV无码导航| XXX2高清在线观看免费视频| 亚洲中文字幕久久精品无码APP | 中文字幕无码播放免费| 亚洲男人天堂2018av| 免费黄色网址入口| 人妻18毛片a级毛片免费看| 亚洲中文字幕无码爆乳av中文| 国产精品无码免费专区午夜| 亚洲国产日韩在线视频| 亚洲综合免费视频| 欧美亚洲精品一区二区| 亚洲狠狠爱综合影院婷婷| 97国免费在线视频| 亚洲春黄在线观看| 国产又长又粗又爽免费视频| 精品国产污污免费网站入口| 7777久久亚洲中文字幕蜜桃| 女人被免费视频网站| 日本激情猛烈在线看免费观看| 精品久久香蕉国产线看观看亚洲| 人与禽交免费网站视频| 理论秋霞在线看免费| 亚洲av无码专区国产乱码在线观看 | 最近中文字幕大全中文字幕免费 | 少妇亚洲免费精品| 亚洲成人福利网站| 午夜国产大片免费观看| 鲁大师在线影院免费观看| 亚洲成av人片天堂网无码】| 国外亚洲成AV人片在线观看| 精品无码AV无码免费专区| 日韩色视频一区二区三区亚洲 |