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 }
解析結果: