dom4j基础性学习总结

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) 车辆运营管理系统

<!--EndFragment-->
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值