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

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

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

    jdom創建解析xml

    Posted on 2009-07-03 17:28 胡娟 閱讀(383) 評論(0)  編輯  收藏 所屬分類: JAVA

    所需要jiar

      Jdom.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.IOException;
    import java.util.Iterator;
    import java.util.List;

    import org.jdom.Document;
    import org.jdom.Element;
    import org.jdom.JDOMException;
    import org.jdom.input.SAXBuilder;

    public class ReadXML {
        
        
    public void readXml(String fileName){
            
    //創建builder實例,這里的false表示使用默認的解析器
            SAXBuilder builder = new SAXBuilder(false);
            
            
    try {
                
    //加載xml
                Document document = builder.build(fileName);
                
    //獲得根元素
                Element studentsElement = document.getRootElement();
                
    //獲得student元素下面的所有元素的子元素
                List studentList = studentsElement.getChildren("student");
                
    //循環list集合
                for(Iterator it = studentList.iterator();it.hasNext();){
                    Element student 
    = (Element)it.next();
                    
    //獲得得元素的屬性
                    String id = student.getAttributeValue("id");
                    System.out.println(id);
                    
    //獲得子元素的屬性
                    String name = student.getChildTextTrim("name");
                    System.out.println(name);
                    String age 
    = student.getChild("age").getText();
                    System.out.println(age);
                }
            } 
    catch (JDOMException e) {
                e.printStackTrace();
            } 
    catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    創建xml的過程

    package com.hujuan.xml;

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

    import org.jdom.Attribute;
    import org.jdom.Document;
    import org.jdom.Element;
    import org.jdom.output.Format;
    import org.jdom.output.XMLOutputter;

    public class CreateXml {
        
        
    public void createXml(){
        
    //創建一個Document,因為xml文檔必須一直有一個唯一的根元素,所以Document將Element放在它的構造器中
        Element studentsElement = new Element("students");
        Document document 
    = new Document(studentsElement);

        
    //添加一個子元素,student節點
        Element student = new Element("student");
        
    //給student節點添加id屬性,值為1
        student.setAttribute(new Attribute("id","1"));
        Element name 
    = new Element("name");
        name.addContent(
    "hujuan");
        student.addContent(name);
        student.addContent(
    new Element("age").addContent("24"));
        studentsElement.addContent(student);
        
        Element student2 
    = new Element("student").setAttribute("id","2");
        
    //添加子元素并設置元素內容
        student2.addContent(new Element("name").setText("fankai"));
        student2.addContent(
    new Element("age").setText("24"));
        studentsElement.addContent(student2);
        
        
    try {
            
    //將xml輸出到屏幕上
            XMLOutputter outputter = new XMLOutputter(Format.getPrettyFormat());
            outputter.output(document, System.out);
            
    //將xml輸出到文件中
            FileWriter writer = new FileWriter("src/aa.xml");
            outputter.output(document, writer);
            writer.close();
        } 
    catch (IOException e) {
            e.printStackTrace();
        }
        
        }

    }

    測試用例

    package junit.test;

    import org.junit.Test;

    import com.hujuan.xml.CreateXml;
    import com.hujuan.xml.ReadXML;

    public class XmlTest {

        
    private String fileName = "src/student.xml";
        @Test
        
    public void readXmlTest(){
            ReadXML readXml 
    = new ReadXML();
            readXml.readXml(fileName);
        }
        @Test
        
    public void creatXmlTest(){
            CreateXml createXml 
    = new CreateXml();
            createXml.createXml();
        }
    }

    調用readXmlTest()方法輸出結果

    1
    hujuan
    24
    2
    fankai
    24

    調用creatXmlTest()方法的輸出結果

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

    修改元素節點的值

    student.getChild("age").setText("22");

    刪除節點

    student.removeChild("name")

    Format 控制輸出文檔的格式

    Format.getCompactFormat() 表示采用緊湊的格式

    Format.getRawFormat() 表示采用原始格式

    Format.getPrettyFormat() 表示采用美化格式,即以兩個空格作為縮進來輸出文檔

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

    Copyright © 胡娟

    主站蜘蛛池模板: 大陆一级毛片免费视频观看i| 成全高清在线观看免费| 在线观看特色大片免费视频| 亚洲欧洲校园自拍都市| 精品国产sm捆绑最大网免费站 | 91福利免费视频| 亚洲国产老鸭窝一区二区三区| 久久免费公开视频| 亚洲成人网在线播放| 成人黄色免费网站| 亚洲av无码专区亚洲av不卡| 免费成人黄色大片| 99re6在线视频精品免费| 欧洲亚洲国产清在高| 日本免费电影一区二区| 自怕偷自怕亚洲精品| 国产精品69白浆在线观看免费| 亚洲欧美日韩中文高清www777| 免费**毛片在线播放直播| 中文精品人人永久免费| 亚洲高清无在码在线无弹窗 | 免费无遮挡无码视频在线观看| 亚洲欧洲久久av| 无码国产精品一区二区免费式芒果 | 国产一精品一AV一免费孕妇 | 色拍自拍亚洲综合图区| 国产香蕉九九久久精品免费| 污网站在线免费观看| 亚洲日本精品一区二区| 免费无遮挡无码视频网站| 成人嫩草影院免费观看| 亚洲AV乱码一区二区三区林ゆな| 亚洲免费视频网址| 亚欧洲精品在线视频免费观看| 午夜亚洲国产理论秋霞| 日本免费中文字幕在线看| 国产午夜不卡AV免费| 亚洲精品伦理熟女国产一区二区| 在线观看国产区亚洲一区成人 | 久久精品国产亚洲AV果冻传媒| 成人免费午夜在线观看|