首頁 >Java >java教程 >dom4j建立並解析xml文件實例教程

dom4j建立並解析xml文件實例教程

零下一度
零下一度原創
2017-06-26 14:47:581343瀏覽

DOM4J解析

     特徵:

      1、JDOM的一種智慧分支,它合併了許多超出基本XML文件表示的功能。

      2、它使用介面和抽象基本類別方法。

      3、具有性能優異、靈活性好、功能強大和極端易用的特點。

      4、是一個開放原始碼的檔案

jar套件:dom4j-1.6.1.jar

#已建立book.xml:

 1 package com.example.xml.dom4j; 2  3 import java.io.FileWriter; 4 import org.dom4j.Document; 5 import org.dom4j.DocumentHelper; 6 import org.dom4j.Element; 7 import org.dom4j.io.OutputFormat; 8 import org.dom4j.io.XMLWriter; 9 /**10  * dom4j创建xml文档示例11  *12  */13 public class Dom4JTest4 {14     public static void main(String[] args) throws Exception {15         // 第二种方式:创建文档并设置文档的根元素节点16         Element root2 = DocumentHelper.createElement("bookstore");17         Document document2 = DocumentHelper.createDocument(root2);18 19         // 添加一级子节点:add之后就返回这个元素20         Element book1 = root2.addElement("book");21         book1.addAttribute("id", "1");22         book1.addAttribute("name", "第一本书");23         // 添加二级子节点24         book1.addElement("name").setText("遇见未知的自己");25         book1.addElement("author").setText("张德芬");26         book1.addElement("year").setText("2014");27         book1.addElement("price").setText("109");28         // 添加一级子节点29         Element book2 = root2.addElement("book");30         book2.addAttribute("id", "2");31         book2.addAttribute("name", "第二本书");32         // 添加二级子节点33         book2.addElement("name").setText("双城记");34         book2.addElement("author").setText("狄更斯");35         book2.addElement("year").setText("2007");36         book2.addElement("price").setText("29");37         38         // 设置缩进为4个空格,并且另起一行为true39         OutputFormat format = new OutputFormat("    ", true);40  41         // 另一种输出方式,记得要调用flush()方法,否则输出的文件中显示空白42         XMLWriter xmlWriter3 = new XMLWriter(new FileWriter("book.xml"),format);43         xmlWriter3.write(document2);44         xmlWriter3.flush();45         // close()方法也可以46 47     }48 }

執行結果:

#解析book.xml:

 1 package com.example.xml.dom4j; 2  3 import java.io.File; 4 import java.util.Iterator; 5 import java.util.List; 6 import org.dom4j.Attribute; 7 import org.dom4j.Document; 8 import org.dom4j.DocumentException; 9 import org.dom4j.Element;10 import org.dom4j.io.SAXReader;11 /**12  * dom4j解析xml文档示例13  *14  */15 public class Dom4JTest3 {16     17     public static void main(String[] args) {18         // 解析books.xml文件19         // 创建SAXReader的对象reader20         SAXReader reader = new SAXReader();21         try {22             // 通过reader对象的read方法加载books.xml文件,获取docuemnt对象。23             Document document = reader.read(new File("book.xml"));24             // 通过document对象获取根节点bookstore25             Element bookStore = document.getRootElement();26             System.out.println("根节点名:"+bookStore.getName());27             // 通过element对象的elementIterator方法获取迭代器28             Iterator it = bookStore.elementIterator();29             // 遍历迭代器,获取根节点中的信息(书籍)30             while (it.hasNext()) {31                 System.out.println("=====开始遍历子节点=====");32                 Element book = (Element) it.next();33                 System.out.println("子节点名:"+book.getName());34                 // 获取book的属性名以及 属性值35                 List<Attribute> bookAttrs = book.attributes();36                 for (Attribute attr : bookAttrs) {37                     System.out.println("属性名:" + attr.getName() + "--属性值:"38                             + attr.getValue());39                 }40                 Iterator itt = book.elementIterator();41                 while (itt.hasNext()) {42                     Element bookChild = (Element) itt.next();43                     System.out.println("节点名:" + bookChild.getName() + "--节点值:" + bookChild.getStringValue());44                 }45                 System.out.println("=====结束遍历该节点=====");46             }47         } catch (DocumentException e) {48             e.printStackTrace();49         }50     }51 52 }

運行結果:

以上是dom4j建立並解析xml文件實例教程的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn