dom4j
dom4j组织提供了针对xml解析的解析器dom4j,其是由jdom组织分裂出来后出现的,其优于jdom。dom4j不是javase的一部分
dom4j使用
使用前需要在项目中导入dom4j的jar包
xml文件如下:
1 | <?xml version="1.0" encoding="utf-8"?> |
dom4j实现查询xml中元素操作
1 | //查询所有name元素里的值 |
dom4j实现添加xml中元素操作
1 | //在第一个p1标签末尾添加一个sex标签 |
在特定位置实现元素添加
1 | //在第一个p1标签中age标签前添加一个<school>cqgcxy.edu.cn</school> |
dom4j实现修改xml中元素操作
1 | //修改第一个p1中age元素内容 |
dom4j实现删除xml中元素操作
1 | //删除第一个p1下school节点 |
dom4j实现获取xml中元素属性值操作
1 | //获取第一个p1属性id1的值 |
dom4j工具类
由于什么的CRUD代码中存在大量重复使用的代码,因此我们可以建立一个工具类来封装这些重复代码,实现调用工具类,来减少代码冗余
1 | public class Dom4jUtils{ |
dom4j支持XPATH操作
可以直接获取某一个元素,不必按照一层一层解析的方式
语法形式
第一种形式:/a/b/c
来表示a里面的b里面的c
第二种形式://A
表示选择所有A元素
第三种形式:/AAA/CCC/DDD/*
表示/AAA/CCC/DDD/里面的所有元素
第四种形式:/*/*/*/
DDD表示选择所有第四层所有DDD元素
第五种形式;//*
所有元素
第六种形式:/a/b[1]
选择a标签中第一个b标签,/a/b[last()]选择a标签中最后一个b标签
第七种形式://@id
表示选择所有id属性,//BBB[@id]表示选择所有含id属性的BBB元素
第八种形式;//BBB[@id='b1']
选择含Id属性且值为b1的所有BBB标签,b1如果左右有空格将不会被选取*
如何在dom4j中使用XPATH
默认的情况下,dom4j不支持XPATH,如果想使用,需要引入XPATH的jar包,在文件中找到jaxen-1.1-beta-6.jar,将其复制进eclipse构建的项目中lib下,右击项目Build Path选择Add to Build Path
在dom4j中提供了两个方法支持XPATH,它们分别是:selectNodes(“XPATH表达式”)和selectSingleNode(“XPATH表达式”),第一个方法获取多个节点,第二个则获取单一节点
1 | //查询xml中所有name元素的值 |
1 | //获取第一个p1下面name的值 |