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

    主站蜘蛛池模板: 污网站在线免费观看| 亚洲成av人片天堂网老年人| 无码免费又爽又高潮喷水的视频 | 亚洲精品美女久久久久| 亚洲精品制服丝袜四区| 国产精品亚洲玖玖玖在线观看| 亚洲精品国产免费| 99精品免费观看| 可以免费观看的毛片| 中文字幕乱码一区二区免费| 在线看片免费人成视频播| 最近中文字幕电影大全免费版| 99久久免费精品高清特色大片| 久久99国产综合精品免费| 最近中文字幕mv免费高清视频7| 青青青国产在线观看免费网站| 99爱在线精品免费观看| 57PAO成人国产永久免费视频 | 亚洲免费日韩无码系列 | 免费无码又爽又刺激高潮视频| 免费人成在线视频| 性感美女视频在线观看免费精品 | 国产av无码专区亚洲av毛片搜| 国产亚洲美女精品久久| 黄网站免费在线观看| 在线观看免费宅男视频| 亚洲精品成人无码中文毛片不卡| 亚洲乱码一区av春药高潮| 亚洲性无码一区二区三区| 色欲aⅴ亚洲情无码AV蜜桃| 最好2018中文免费视频| 久久免费福利视频| 国产精品久久久久久久久免费| 国产一级淫片免费播放| 国产亚洲成人久久| 国产精品亚洲四区在线观看 | 免费A级毛片无码专区| 全部免费国产潢色一级| 久久亚洲AV无码精品色午夜| 亚洲无吗在线视频| 免费久久人人爽人人爽av|