dom4j基础性学习总结
编程技术  /  houtizong 发布于 3年前   168
Dom4j学习总结:
本次学习性总结主要从以下四方面进行:
一. Xml文档的创建及读取方式
二. Xml文档的修改及删除
三. Xml技术面的扩展
四. Xml文档在dom4j技术框架下的实力型应用
首先要引入两个jar包:dom4j.jar和jaxen-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];
文章归档
文章标签
友情链接