dom4j基础性学习总结

编程技术  /  houtizong 发布于 3年前   175

Dom4j学习总结:

本次学习性总结主要从以下四方面进行:

一. Xml文档的创建及读取方式

二. Xml文档的修改及删除

三. Xml技术面的扩展

四. Xml文档在dom4j技术框架下的实力型应用

首先要引入两个jar包:dom4j.jarjaxen-1.1-beta-4.jar

一. Xml文档的创建和读取方式

1. 创建一个document对象

Document document = DocumentHelper.createDocument();

创建一个document型节点(Node)作为根节点,根节点只能有一个

Element root = document.addElement("books");

创建其他Element型节点(Node)作为普通节点

Element elementBook = root.addElement("book");

创建元素节点的属性

Attribute attributeShow = elementBook.addAttribute("show","true");

Attribute attributeAuthor = elementBook.addAttribute("author","zhongshanming");

addAttribute("arg1","arg2");

arg1 表示创建的属性名称

arg2 表示创建的属性值

创建注释,添加文本节点

root.addComment("this is a use case");

elementBook.addText("My World");

 将document对象输出,执行创建xml文档的最后一步

XMLWriter writer = new XMLWriter(new FileWriter(new File(sourceFile)));

writer.write(document);

writer.close();

以上是我们在创建xml文档时经常用到的方法,对于其他的一些方法,在开发的过程中,可以以此为基础,举一反三,灵活运用。

2. Xml文档的读取

1) SAXReader方式读取

SAXReader reader = new SAXReader();

Document document = reader.read(new File(filename));

获取到元素节点

Node nodeElement = document.selectNodes("/books/book")

获取到元素中的属性节点【默认读取第一个】

Node nodeAttribute = document.selectSingleNode("//books/book/@show");

或者[如果使用XPath方式读取,必须添加jaxen-1.1-beta-4.jar]

XPath xpathNode = DocumentHelper.createXPath("//books/book/title");

List listNode = xpathNode.selectNodes(document);

Iterator itera = listNode.iterator();

while(itera.hasNext()){

Node node = (Node) itera.next();

……………

}

2) Visitor方式读取

root.accept(new MyVisitor());

public class MyVisitor extends VisitorSupport{

public void visit(Element element){

System.out.println(element.getName());

……………..

}

public void visit(Attribute attribute){

System.out.println(attribute.getName());

……………..

}

}

不过这种方式不是可以控制的,当读取到root节点时,监听的类就自动执行了。

二. Xml文档的修改及删除

1. xml文档的修改

依据xml文档的读取功能,在遍历节点元素或是属性时,同我们即将要修改的信息进行比较,进而进行修改,如:

XPath xpathNode = DocumentHelper.createXPath("//books/book/title");

List listNode = xpathNode.selectNodes(document);

Iterator itera = listNode.iterator();

while(itera.hasNext()){

Node node = (Node) itera.next();

if(node.getText().equals("数学分析")){

node.setText("高等数学");

}

}

2. xml文档的删除

xml文档的修改是同样的操作,首先需要读取xml文档,然后依据条件遍历并得到要删除的节点,然后直接移除,如:

Node node = (Node) itera.next();

if(node.getText().equals("数学分析")){

root.remove(node);

}

三. Xml技术面的扩展

1. xml文档的格式化和编码

OutputFormat format = OutputFormat.createPrettyPrint();

format.setEncoding("GB2312");

XMLWriter writer = new XMLWriter(new FileWriter(new File(sourceFile)),format);

writer.write(document);

writer.close();

2. 遍历所有的元素节点和属性节点

for(Iterator iter = root.elementIterator();iter.hasNext();){

Element element = (Element)iter.next();

…………..

}

for(Iterator iter = root.attributeIterator();iter.hasNext();){

Attribute attribute = (Attribute)iter.next();

…………..

}

3. XSLT转换XML

4. 字符串与XML的转换

5. 

6. 

四. Xml文档在dom4j技术框架下的应用

1) XML替代数据库,图书管理小系统

2) 车辆运营管理系统

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!

留言需要登陆哦

技术博客集 - 网站简介:
前后端技术:
后端基于Hyperf2.1框架开发,前端使用Bootstrap可视化布局系统生成

网站主要作用:
1.编程技术分享及讨论交流,内置聊天系统;
2.测试交流框架问题,比如:Hyperf、Laravel、TP、beego;
3.本站数据是基于大数据采集等爬虫技术为基础助力分享知识,如有侵权请发邮件到站长邮箱,站长会尽快处理;
4.站长邮箱:[email protected];

      订阅博客周刊 去订阅

文章归档

文章标签

友情链接

Auther ·HouTiZong
侯体宗的博客
© 2020 zongscan.com
版权所有ICP证 : 粤ICP备20027696号
PHP交流群 也可以扫右边的二维码
侯体宗的博客