技能分析:解析xml
使用dom4j解析xml文档的步骤:
dom4j 是一个开源的 xml 解析框架,它基于 java 的 sax 解析器和 jaxp 解析器开发,提供了灵活简便、性能优良、扩展性强的 xml 解析和生成功能。
dom4j通过saxreader对象加载并解析xml文件,把它转换为内存中的document对象,接着对document对象中的元素进行添加、更新和删除操作,并且通过xmlwriter对象把修改后的document对象保存到xml文件中。
帮助手册:overview (dom4j 1.6.1 api)
dom4j核心对象
1.saxreader:xml解析器
(1)创建sasxreader对象,无参构造方法
(2)调用read(xml文件资源),读取并解析xml,得到document对象
2.document:xml文档
调用element getrootelement() 得到 根标签对象
3.element:
(1)获取第一个子标签:element element(标签名)
(2)获取所有子标签:list elements(标签名)
(3)获取属性:attribute attribute(属性名)
(4)获取标签的内容:elementtext()
(5)获取属性的值:attributevalue()
配置dom4j的jar包
1.在项目根目录下创建lib文件夹
2.将dom4j.jar拷贝到lib目录下
3. 点击project structure
4.再点击libraries,点击“+”,添加java
5.进入select library files界面,点击lib文件夹
6.添加后,点击左下角apply,再点应用,就完成了
读取xml文件
(1)创建sax解析器saxreader对象,用于读取xml文件
saxreader saxreader = new saxreader();
(2)读取xml文件,得到document对象:
document document = saxreader.read("user.xml");
注:若read下有红色波浪线,则直接alt+enter抛异常即可
(3) 通过document对象获取根元素
element rootelement = document.getrootelement();
(4)通过父元素获取子元素:
获取迭代器:elementiterator(),迭代获取。
指定元素名:element(元素名) 获取指定元素名的第一个子元素
获取指定元素: elements(元素名) list 指定元素名的所有的子元素
(5)通过元素获取它的属性:
获取迭代器:attributeiterator(),迭代获取。
指定索引(0开始)或名字:attribute(索引)、attribute(属性名)
读取user.xml文件
<?xml version="1.0" encoding="utf-8"?> <users> <user userid="1"> <username>admin</username> <pwd>123</pwd> </user> <user userid="2"> <username>lisi</username> <pwd>123</pwd> </user> </users>
src.demo1文件:
import org.dom4j.attribute; import org.dom4j.document; import org.dom4j.documentexception; import org.dom4j.element; import org.dom4j.io.saxreader; import java.util.list; public class demo1 { public static void main(string[] args) throws documentexception { saxreader saxreader = new saxreader(); document document = saxreader.read("user.xml"); element rootelement = document.getrootelement(); //打印根标签名字 system.out.println("标签名:"+rootelement.getname()); list<element> userelements = rootelement.elements("user"); for(element userele:userelements){ //子标签 element usernameele = userele.element("username"); //获取文本 system.out.println("username:"+usernameele.gettext()); element passwordele = userele.element("pwd"); system.out.println("password:"+passwordele.gettext()); //属性 attribute id = userele.attribute("userid"); system.out.println("id属性的值:"+id.gettext()); } } }
运行结果:
总结
到此这篇关于java使用dom4j解析xml、读取xml文件的文章就介绍到这了,更多相关jav dom4j解析读取xml文件内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论