使用JDOM操做XML

  JDOM介紹dom

  JDOM是使用Java語言編寫的,用於讀寫及操做XML的一套組件,Jdom同時具備DOM修改文件的優勢和SAX讀取快速的優勢。 ui

  JDOM的使用編碼

  首先下載JDOM的JAR包,本文使用的是jdom-2.0.5,下載地址:http://download.csdn.net/detail/onroads/9719611spa

  在工程目錄下新建一個lib文件夾,將下載的jar包中的jar文件拷貝到lib文件夾下  .net

    

  右鍵項目Build Path->Configure Build Path...,以下圖:code

    

  選擇Libraries->Add JARs...,添加lib文件夾中的jdom-2.0.5.jarorm

    

  使用JDOMxml

  JDOM主要的操做類以下表:對象

 

 建立XML文件:blog

        Map<String, String> map = new HashMap<>();
        map.put("小明", "xiaoming@163.com");
        map.put("翠花", "cuihua@163.com");
        
        Document document = null;    
        //定義根節點
        Element addresslist = new Element("addresslist");
        //聲明一個Document對象
        document = new Document(addresslist);
        
        Set<Entry<String, String>> set = map.entrySet();
        Iterator<Entry<String, String>> iterator = map.entrySet().iterator();
        int i=0;
        while(iterator.hasNext()){
            Entry<String, String> mapentry = iterator.next();
            //定義節點
            Element linkman = new Element("linkman");
            Element name = new Element("name");
            Element email = new Element("email");
            //定義屬性
            Attribute id = new Attribute("id", ++i+"");
            //設置節點內容
            name.setText(mapentry.getKey());
            email.setText(mapentry.getValue());
            //將屬性添加到節點
            name.setAttribute(id);
            //鏈接節點
            linkman.addContent(name);
            linkman.addContent(email);
            addresslist.addContent(linkman);
        }

        //用來輸出XML文件
        XMLOutputter out = new XMLOutputter();
        //設置輸出編碼
        out.setFormat(out.getFormat().setEncoding("GBK"));
        
        try{
            //輸出XML文件
            out.output(document, new FileOutputStream("D:"+File.separator+"JdomXML.xml"));
        }catch(Exception e){
            e.printStackTrace();
        }

  生成的xml文件以下:

<?xml version="1.0" encoding="GBK" standalone="no"?>
<addresslist>
    <linkman>
        <name index="1">小麗</name>
        <email>xiaoli@163.com</email>
    </linkman>
    <linkman>
        <name index="2">李雷</name>
        <email>lilei@163.com</email>
    </linkman>
</addresslist>

 讀取剛纔生成的xml文件:

 1         SAXBuilder sbBuilder = new SAXBuilder();
 2         Document doc = null;
 3         try {
 4             //找到Document
 5             doc = sbBuilder.build("D:"+File.separator+"output.xml");
 6             //讀取根元素
 7             Element stu = doc.getRootElement();
 8             //獲得所有linkman子元素
 9             List list = stu.getChildren("linkman");
10             
11             for(int i=0;i<list.size();i++){
12                 Element element = (Element) list.get(i);
13                 String name = element.getChildText("name");
14                 String index = element.getChild("name").getAttributeValue("index");
15                 String email = element.getChildText("email");
16                 System.out.print("<name" + " index="+index+">" + name+"</name>");
17                 System.out.println("<email>" + email+"</email>");
18             }
19             
20         } catch (Exception e) {
21             
22             e.printStackTrace();
23         }

   解析結果:

  

相關文章
相關標籤/搜索