>Java >java지도 시간 >dom4j 생성 및 XML 문서 구문 분석 예제 튜토리얼

dom4j 생성 및 XML 문서 구문 분석 예제 튜토리얼

零下一度
零下一度원래의
2017-06-26 14:47:581343검색

DOM4J 구문 분석

기능:

1. 기본 XML 문서 표현 이상의 많은 기능을 통합하는 지능형 JDOM 분기입니다.

    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 }

실행 결과:

Par se 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으로 문의하세요.