XML_Dom4j的使用
来源:互联网 发布:怎么查看淘宝店家电话 编辑:程序博客网 时间:2024/06/05 13:34
DOM4J的背景
Dom4j是一个简单、灵活的开放源代码的库。Dom4j是由早期开发JDOM的人分离出来后而独立开发的。Dom4J使用接口和抽象基类,虽然Dom4J的API相对要复杂一些,但是它提供了比JDOM更好的灵活性。
1. Dom4J的jar包介绍
Dom4J属于第三方插件,我们在下载完之后,将其解压如下:
2. 导入JAR包
因为dom4J是属于第三方插件,所以要使用dom4J,我们必须将其jar包导入到lib目录下。找到dom4j-1.6.1.jar(1.6.1是版本号),放进Wroot – WEB INF – lib下。
3. DOM4J查询操作
DOM4J查找节点的文本内容,需要一层一层去查找内容,通过根节点去查找子节点,再查找子节点的子节点。
//创建解析器:new SAXReader()SAXReader reader = new SAXReader();//解析XML,返回Document对象:read(File file);Document document = reader.read("src/book.xml");//获取根节点:getRootElement();Element root = document.getRootElement();//获取根节点的子节点:root.elements(标签名)List<Elemtnt> first = root.elements("XXX");//XXX是节点的名字(String类型)//返回List集合,可以遍历集合或者getIndex()获取Element对象//获取文本 getText()
4. DOM4J在末尾添加子节点
添加子节点是在查询的基础上进行的。
先看下xml中没有改变的内容是这样的:
<?xml version="1.0" encoding="UTF-8"?><书架> <书> <书名>javaweb开发大全</书名> <作者>班长</作者> <售价>99.8元</售价> <简介>这是不错啊</简介> </书> <书> <书名>葵花宝典</书名> <作者>岳不群</作者> <售价>99.8两</售价> <简介>欲练此功...</简介> </书> </书架>
下面是在末尾添加子节点的代码:
//获取解析器 SAXReader reader = new SAXReader(); //解析XML,返回Document对象 Document document = reader.read("src/book2.xml"); //获取根节点 Element root = document.getRootElement(); //获取第二本书 Element book2 = (Element) root.elements("书").get(1); //直接在第二本书下添加子节点,设置文本内容 book2.addElement("猫").setText("这TM是猫?"); //回写 FileOutputStream fos = new FileOutputStream("src/book2.xml");//创建流 XMLWriter writer = new XMLWriter(fos); //回写类 writer.write(document); //回写文档对象 writer.close(); //关闭流
执行后的结果为:
<?xml version="1.0" encoding="UTF-8"?><书架> <书> <书名>javaweb开发大全</书名> <作者>班长</作者> <售价>99.8元</售价> <简介>这是不错啊</简介> </书> <书> <书名>葵花宝典</书名> <作者>岳不群</作者> <售价>99.8两</售价> <简介>欲练此功...</简介> <猫>这TM是猫?</猫></书> </书架>
但是格式有点乱,我们可以通过设置来搞定:
//设置格式OutputFormat Peopleformat = OutputFormat.createPrettyPrint();//适用于人看OutputFormat PCformat = OutputFormat.createPrettyPrint();//适用于电脑//设置编码集,也可以不设置,默认编码集为"UTF-8"Peopleformat.setEncoding("GBK");//然后在原本回写类的后面添加一个参数format,就是上面的设置的格式XMLWriter writer = new XMLWriter(fos,format); //回写类
5. 在指定位置添加子节点
//获取解析对对象 SAXReader reader = new SAXReader(); //解析XML Document document = reader.read("src/book2.xml"); //获取根节点 Element root = document.getRootElement(); //获取第二本书节点 Element book = (Element) root.elements("书").get(1); //获取第二本书下的所有子节点,返回List集合 List<Element> list = book.elements(); //创建元素对象,DocumentHelper.createrElement("狗"); Element dog = DocumentHelper.createElement("狗"); //给这个节点设置文本内容 dog.setText("马萨卡!!是狗???"); //在指定的位置上进行添加,前面一个参数是索引 list.add(1,dog); //回写 回写的具体代码可以参照上面 在节点末尾添加子节点代码中的回写。
6. 移除和修改子节点
和上面代码一样,获取到 第二本书的节点 //获取书的节点 //获取猫节点 Element cat = book.element("猫"); //修改节点内容 cat.setText("猫和老鼠"); //移除猫的节点 book.remove(cat); //回写和上面一样,进行回写
阅读全文
0 0
- XML_Dom4j的使用
- XML_DOM4J
- XML_Dom4J配合XPath
- GUID使用的使用
- ${}的使用
- 的使用
- @[],@()的使用
- ->的使用
- +、-、*、/、%的使用
- &&的使用
- %:的使用
- Makefile中使用$$的使用
- Makefile中使用$$的使用
- Red5的使用--使用日志
- prefernce的使用具体使用
- 【工具使用】git 的使用
- 关于使用AsyncTaskLoader的使用
- 使用CABasicAnimation的基本使用
- RocketMQ web界面监控rocketmq-console部署问题
- C:\Windows\System32>net start mysql MySQL 服务正在启动 . MySQL 服务无法启动。 服务没有报告任何错误。 请键入 NET HELPMSG 3534
- 配置samba服务--centos7.x
- 软件JDK的安装及变量参数设置
- Hadoop单机安装-yellowcong
- XML_Dom4j的使用
- Linux下的虚拟串口驱动(三)
- 剑指offer:第一个只出现一次的字符位置
- 任总在新员工入职培训座谈会上的讲话
- Android hybrid 开发实践(android webview)
- 码位(code position/point)Unicode 编码与 Python 2/3 编码兼容性问题
- 【Java】EL表达式
- RecyclerView回收原理分析
- 设计模式(五)--装饰模式