欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

dom4j创建和解析xml文档的实现方法

程序员文章站 2023-12-18 23:48:52
dom4j解析 特征: 1、jdom的一种智能分支,它合并了许多超出基本xml文档表示的功能。 2、它使用接口和抽象基本类方法。 3、具有性能优异、灵活性好、功能强...

dom4j解析

特征:

1、jdom的一种智能分支,它合并了许多超出基本xml文档表示的功能。

2、它使用接口和抽象基本类方法。

3、具有性能优异、灵活性好、功能强大和极端易用的特点。

4、是一个开放源码的文件

jar包:dom4j-1.6.1.jar

dom4j创建和解析xml文档的实现方法

创建 book.xml:

package com.example.xml.dom4j;

import java.io.filewriter;
import org.dom4j.document;
import org.dom4j.documenthelper;
import org.dom4j.element;
import org.dom4j.io.outputformat;
import org.dom4j.io.xmlwriter;
/**
 * dom4j创建xml文档示例
 *
 */
public class dom4jtest4 {
  public static void main(string[] args) throws exception {
    // 第二种方式:创建文档并设置文档的根元素节点
    element root2 = documenthelper.createelement("bookstore");
    document document2 = documenthelper.createdocument(root2);

    // 添加一级子节点:add之后就返回这个元素
    element book1 = root2.addelement("book");
    book1.addattribute("id", "1");
    book1.addattribute("name", "第一本书");
    // 添加二级子节点
    book1.addelement("name").settext("遇见未知的自己");
    book1.addelement("author").settext("张德芬");
    book1.addelement("year").settext("2014");
    book1.addelement("price").settext("109");
    // 添加一级子节点
    element book2 = root2.addelement("book");
    book2.addattribute("id", "2");
    book2.addattribute("name", "第二本书");
    // 添加二级子节点
    book2.addelement("name").settext("双城记");
    book2.addelement("author").settext("狄更斯");
    book2.addelement("year").settext("2007");
    book2.addelement("price").settext("29");
    
    // 设置缩进为4个空格,并且另起一行为true
    outputformat format = new outputformat("  ", true);
 
    // 另一种输出方式,记得要调用flush()方法,否则输出的文件中显示空白
    xmlwriter xmlwriter3 = new xmlwriter(new filewriter("book.xml"),format);
    xmlwriter3.write(document2);
    xmlwriter3.flush();
    // close()方法也可以

  }
}

运行结果:

dom4j创建和解析xml文档的实现方法

解析 book.xml:

package com.example.xml.dom4j;

import java.io.file;
import java.util.iterator;
import java.util.list;
import org.dom4j.attribute;
import org.dom4j.document;
import org.dom4j.documentexception;
import org.dom4j.element;
import org.dom4j.io.saxreader;
/**
 * dom4j解析xml文档示例
 *
 */
public class dom4jtest3 {
  
  public static void main(string[] args) {
    // 解析books.xml文件
    // 创建saxreader的对象reader
    saxreader reader = new saxreader();
    try {
      // 通过reader对象的read方法加载books.xml文件,获取docuemnt对象。
      document document = reader.read(new file("book.xml"));
      // 通过document对象获取根节点bookstore
      element bookstore = document.getrootelement();
      system.out.println("根节点名:"+bookstore.getname());
      // 通过element对象的elementiterator方法获取迭代器
      iterator it = bookstore.elementiterator();
      // 遍历迭代器,获取根节点中的信息(书籍)
      while (it.hasnext()) {
        system.out.println("=====开始遍历子节点=====");
        element book = (element) it.next();
        system.out.println("子节点名:"+book.getname());
        // 获取book的属性名以及 属性值
        list<attribute> bookattrs = book.attributes();
        for (attribute attr : bookattrs) {
          system.out.println("属性名:" + attr.getname() + "--属性值:"
              + attr.getvalue());
        }
        iterator itt = book.elementiterator();
        while (itt.hasnext()) {
          element bookchild = (element) itt.next();
          system.out.println("节点名:" + bookchild.getname() + "--节点值:" + bookchild.getstringvalue());
        }
        system.out.println("=====结束遍历该节点=====");
      }
    } catch (documentexception e) {
      e.printstacktrace();
    }
  }

}

运行结果:

dom4j创建和解析xml文档的实现方法

以上这篇dom4j创建和解析xml文档的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

上一篇:

下一篇: