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

网友投稿 351 2023-05-07


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

DOM4J解析

特征:

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

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

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

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

jar包:dom4j-1.6.1.jar

创建 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").http://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("namKwNbzDwGtJe").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()方法也可以

}

}

运行结果:

解析 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();

http:// 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 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();

}

}

}

运行结果:


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:bootstrap daterangepicker双日历时间段选择控件详解
下一篇:实现接口方法快捷键(实现接口使用什么关键字)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~