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

    主站蜘蛛池模板: 日本特黄特色免费大片| 亚洲国产精品一区二区三区在线观看 | 亚洲精品无码久久久久牙蜜区| 亚洲熟妇无码乱子AV电影| 在线观看视频免费国语| 97视频免费观看2区| 黄视频在线观看免费| 国产偷国产偷亚洲清高APP| 亚洲人成综合在线播放| 亚洲一二成人精品区| 亚洲国产专区一区| 拔擦拔擦8x华人免费久久| 无码国产精品一区二区免费| 你懂的网址免费国产| jyzzjyzz国产免费观看| 久久亚洲精品无码av| 亚洲精华国产精华精华液 | 免费黄网站在线看| 一区二区三区免费在线观看| 国产成人精品日本亚洲语音 | A在线观看免费网站大全| 精品无码AV无码免费专区| 久久久久久免费一区二区三区| 一个人免费观看日本www视频| 黄色a级片免费看| 老司机精品视频免费| 白白色免费在线视频| 日本亚洲欧美色视频在线播放| 亚洲国产精品成人AV在线 | 日韩免费a级毛片无码a∨| 91精品免费在线观看| 日韩不卡免费视频| 一色屋成人免费精品网站| 亚洲国产精品免费观看| 91精品国产免费久久国语蜜臀 | 亚洲无码黄色网址| 自拍偷自拍亚洲精品第1页| 亚洲无码高清在线观看| 亚洲综合无码AV一区二区| 国产AV无码专区亚洲AVJULIA| 欧洲亚洲国产清在高|