Dom4j 操作, 节点查找 添加 删除 修改 。。。xPath
转:
Dom4j 操作, 节点查找 添加 删除 修改 。。。xPath
Dom4j 说明文档:http://blog.csdn.net/xj626852095/article/details/17000741
xPath说明文档: http://www.zvon.org/xxl/XPathTutorial/General_chi/examples.html
要解析的xml文件
- <?xml version="1.0" encoding="UTF-8"?>
- <书架>
- <书 name="yyyyyyy">
- <书名>Java</书名>
- <作者>张三</作者>
- <打折价>9.9折</打折价>
- <售价>只要998</售价>
- </书>
- <书 memony="有优惠价">
- <书名 name="xxxxx">JavaScript网页开发</书名>
- <作者>李四</作者>
- <售价>28.00元</售价>
- <优惠价>8折</优惠价>
- <优惠价>8折</优惠价>
- <优惠价>8折</优惠价>
- </书>
- <user username="kevin" passwd="123456"/>
- <user username="xiang" passwd="234567"/>
- </书架>
- package com.kevin.java;
- import static org.junit.Assert.*;
- import java.io.File;
- import java.io.FileOutputStream;
- import java.io.FileWriter;
- import java.io.IOException;
- import java.io.OutputStreamWriter;
- import java.util.List;
- import org.dom4j.Document;
- import org.dom4j.DocumentException;
- import org.dom4j.DocumentHelper;
- import org.dom4j.Element;
- import org.dom4j.Node;
- import org.dom4j.io.OutputFormat;
- import org.dom4j.io.SAXReader;
- import org.dom4j.io.XMLWriter;
- import org.junit.Test;
- import org.xml.sax.DocumentHandler;
- public class Dom4j_Test {
- //Xpath使用
- @Test
- public void test4() throws DocumentException, IOException {
- SAXReader reader = new SAXReader();
- Document document = reader.read(new File("src/book1.xml"));
- String bookName = document.selectSingleNode("//书名").getText();
- System.out.println("bookName: " + bookName);
- //查找符合条件的User //BBB[@id='b1'] 注意要有单引号
- String username = "kevin";
- String passwd = "123456";
- Node node = document.selectSingleNode
- ("//user[@username='"+username+"' and @passwd='"+passwd+"']");
- if(node==null)
- System.out.println("不是注册用户");
- else
- System.out.println("注册用户");
- }
- //获得第二本数的书名, 属性值 , 添加售价节点
- @Test
- public void test1() throws DocumentException, IOException {
- SAXReader reader = new SAXReader();
- Document document = reader.read(new File("src/book1.xml"));
- Element root = document.getRootElement();
- Element book = root.elements("书").get(1);
- String bookName = book.element("书名").getText();
- String bookAttr = book.element("书名").attributeValue("name");
- System.out.println("bookName: " + bookName);
- System.out.println("bookAttr: " + bookAttr);
- //添加售价节点
- book.addAttribute("memony", "有优惠价");
- book.addElement("优惠价").setText("8折");
- OutputFormat format = OutputFormat.createPrettyPrint();
- format.setEncoding("UTF-8");
- XMLWriter writer = new XMLWriter(
- new OutputStreamWriter(new FileOutputStream("src/book1.xml")), format);
- writer.write(document);
- writer.close();
- }
- //指定位置添加
- @Test
- public void test2() throws DocumentException, IOException {
- SAXReader reader = new SAXReader();
- Document document = reader.read(new File("src/book1.xml"));
- Element book = document.getRootElement().element("书");
- List list = book.elements();
- Element price = DocumentHelper.createElement("打折价");
- price.setText("9.9折");
- list.add(2, price);
- OutputFormat format = OutputFormat.createPrettyPrint();
- format.setEncoding("UTF-8");
- XMLWriter writer = new XMLWriter(
- new OutputStreamWriter(new FileOutputStream("src/book1.xml")), format);
- writer.write(document);
- writer.close();
- }
- //删除节点 更新节点
- @Test
- public void test3() throws DocumentException, IOException {
- SAXReader reader = new SAXReader();
- Document document = reader.read(new File("src/book1.xml"));
- Element priceTmp = document.getRootElement().element("书").element("打折价");
- //删除节点
- priceTmp.getParent().remove(priceTmp);
- Element price = document.getRootElement().element("书").element("售价");
- //更新节点
- price.setText("只要998");
- OutputFormat format = OutputFormat.createPrettyPrint();
- format.setEncoding("UTF-8");
- XMLWriter writer = new XMLWriter(
- new OutputStreamWriter(new FileOutputStream("src/book1.xml")), format);
- writer.write(document);
- writer.close();
- }
Dom4j 操作, 节点查找 添加 删除 修改 。。。xPath的更多相关文章
- dir(dict)|字典的创建-添加-删除-修改-判断存在-取值等相关操作
dir(dict) ####字典操作:创建-添加-删除-修改-判断存在-取值 #(一)创建字典: {} .等号. zip(). [(),()] #1.创建空字典 dict0 = {} #2.等号创建 ...
- JavaScript学习 - 基础(八) - DOM 节点 添加/删除/修改/属性值操作
html代码: <!--添加/删除/修改 --> <div id="a1"> <button id="a2" onclick=&q ...
- JTree 添加 , 删除, 修改
package com.swing.demo; import java.awt.BorderLayout; import java.awt.Container; import java.awt.eve ...
- SQL语句添加删除修改字段及一些表与字段的基本操作
用SQL语句添加删除修改字段 1.增加字段 alter table docdsp add dspcode char(200)2.删除字段 ALTER TABLE table_NA ...
- 用SQL语句添加删除修改字段、一些表与字段的基本操作、数据库备份等
用SQL语句添加删除修改字段 1.增加字段 alter table docdsp add dspcode char(200) 2.删除字段 ALTER TABLE table_NAME DROP CO ...
- SQL语句添加删除修改字段[sql server 2000/2005]
用SQL语句添加删除修改字段1.增加字段 alter table docdsp add dspcodechar(200)2.删除字段 ALTER TABLE table_NAME ...
- SQL语句添加删除修改字段
用SQL语句添加删除修改字段1.增加字段 alter table docdsp add dspcodechar(200)2.删除字段 ALTER TABLE table_NAME ...
- Entity framework 绑定到Datagridview的添加删除修改
Entity framework 绑定到Datagridview的添加删除修改 using System; using System.Collections.Generic; using System ...
- 节点操作-创建并添加&删除节点&替换&克隆节点
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" ...
随机推荐
- WebGL射线拾取模型——八叉树优化
经过前面2篇WebGL射线拾取模型的文章,相信大家对射线和模型面片相交的原理已经有所了解,那么今天我们再深入探究关于射线拾取的一个问题,那就是遍历场景中的所有与射线相交的模型的优化问题.首先我们来复习 ...
- HttpServletResponse 之 sendError( )
直接返回http 401状态,提示重新登录 response.sendError(401, "当前账户未登录或会话失效,请重新登录!) HTTP状态码列表: 100Continue继续.客户 ...
- 【Linux 运维】Linux 目录
目录 [Linux 运维]Centos7初始化网络配置 [Linux 运维]linux系统修改主机名 [Linux 运维]linux系统关机.重启.注销命令 [Linux 运维]linux系统查看版本 ...
- Python数据挖掘——数据预处理
Python数据挖掘——数据预处理 数据预处理 数据质量 准确性.完整性.一致性.时效性.可信性.可解释性 数据预处理的主要任务 数据清理 数据集成 数据归约 维归约 数值归约 数据变换 规范化 数据 ...
- Python 招聘信息爬取及可视化
自学python的大四狗发现校招招python的屈指可数,全是C++.Java.PHP,但看了下社招岗位还是有的.于是为了更加确定有多少可能找到工作,就用python写了个爬虫爬取招聘信息,数据处理, ...
- Python 中的实用数据挖掘
本文是 2014 年 12 月我在布拉格经济大学做的名为‘ Python 数据科学’讲座的笔记.欢迎通过 @RadimRehurek 进行提问和评论. 本次讲座的目的是展示一些关于机器学习的高级概念. ...
- win10 tomcat不能访问问题
问题描述:电脑是Win10系统的,安装了Tomcat后,本机通过80端口能顺利访问.但局域网内的其他机器却无法访问这台电脑的Tomcat服务. 故障分析: 将防火墙关闭后,可以访问,所以问题就出在防火 ...
- hdu 1241--入门DFS
Oil Deposits Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Tot ...
- FormsAuthentication.SetAuthCookie 方法登录
FormsAuthentication.SetAuthCookie 方法,登录的原理. FormsAuthentication.SetAuthCookie 方法登录的过期时间. 登录相关阅读 asp. ...
- Learn Docker(一)—软件安装与常规操作
一.安装Docker Windows平台 在Windows10 X64专业版上可以直接下载Docker原生应用进行安装,在控制面板的程序与功能里启用Hyper-v,之后就可以运行docker程序啦. ...