1、获得文档

/**

*1、获得解析流

*2、解析XML

*/

2、添加

/**

*1、获取父元素

*2、创建元素

*3、创建属性并添加到元素中

*4、元素添加到根节点

*/

3、更新

/**

*1、获取结点

*2、转化为元素

*3、获取子元素

*4、更改

*/

4、删除

/**

*1、获得结点

*2、转换为元素

*3、获得父元素

*4、移除

*/

5、保存

/**

*1、创建输出对象

*2、添加内容对象

*3、关闭输出流

*/

获得文档

//获取文档
private static Document GetDocument() throws DocumentException {
//获得解析流
SAXReader reader=new SAXReader();
//解析xml
Document document=reader.read("books.xml");
return document; }

添加文档

//添加
private static void AddXml(Document document) {
//获取父元素
Element rootElement=document.getRootElement();
//创建元素
Element newElement =DocumentHelper.createElement("book");
//创建属性
Attribute attribute=DocumentHelper.createAttribute(newElement, "id", "b003");
//属性添加到元素中
newElement.add(attribute); //子元素
Element priceElement=DocumentHelper.createElement("price");
priceElement.setText("1234567890");
newElement.add(priceElement); //添加到根元素
rootElement.add(newElement);
}

修改文档

//修改
private static void UpdateXml(Document document) { //获取book结点
Node node= document.selectSingleNode("//book[@id='b001']");
//转换为元素
Element bookelement=(Element) node;
//获取price元素
Element priceElement= bookelement.element("price");
//更改文字
priceElement.setText("12345");
priceElement.setAttributeValue("unit", "$");
}

删除文档元素

 //删除元素
private static void DeleteXml(Document document) {
//获得结点
Node node= document.selectSingleNode("//book[@id='b001']");
//转换为元素
Element element=(Element) node;
//获取父元素
Element parentElement=element.getParent();
//移除
parentElement.remove(node);
}

保存文档

 //保存
private static void SavaXml(Document document) throws IOException {
//创建文件输出对象
FileWriter fileWriter=new FileWriter("books.dom4j.xml");
XMLWriter writer=new XMLWriter(fileWriter);
//添加内容对象
writer.write(document);
//关闭流
writer.close();
}

Dom4j 添加 / 更新 / 删除 XML的更多相关文章

  1. DOM 添加 / 更新 / 删除 XML (CURD)

    获得Document /**     * 获取文档     * 1.获得实例工厂     * 2.获得解析器     * 3.获得document     */ 添加结点 /**     * 1.获得 ...

  2. PHP中Cookie的使用---添加/更新/删除/获取Cookie 及 自动填写该用户的用户名和密码和判断是否第一次登陆

    PHP中Cookie的使用---添加/更新/删除/获取Cookie 及 自动填写该用户的用户名和密码和判断是否第一次登陆  什么是cookie 服务器在客户端保存用户的信息,比如登录名,密码等 这些数 ...

  3. ado.net 批量添加 更新 删除

    自曾列就别往下看 别折腾了   使用 SqlBulkCopy ,dataTable 必须跟sql里面的表字段完全一样 下面在sqlserver中演示 mysql 请google MySqlBulkLo ...

  4. Mysql添加更新删除数据-表

    例如 此处拥有一个表名为 uuser 为表添加新数据 ,'); ,'); ,'); 假如只想添加uid和uname ,'小张'); 那么pas自动填充为NULL. 为表更新数据 这里把小王的pas改成 ...

  5. iOS回顾笔记(09) -- Cell的添加、删除、更新、批量操作

    iOS回顾笔记(09) -- Cell的添加.删除.更新.批量操作 项目中经常有对UITableViewCell做各种操作的需求: 添加一个新的cell 删除某行cell 刷新cell上某行数据(如修 ...

  6. C# 添加,修改,删除Xml节点 摘录

    C# 添加,修改,删除Xml节点 //添加xml节点    private void AddXml(string image, string title)     {        XmlDocume ...

  7. ArcGIS Engine效率探究——要素的添加和删除、属性的读取和更新

    ArcGIS Engine效率探究——要素的添加和删除.属性的读取和更新 来自:http://blog.csdn.net/freewaywalker/article/details/23703863 ...

  8. Winform中对自定义xml配置文件进行Xml节点的添加与删除

    场景 Winform中自定义xml配置文件后对节点进行读取与写入: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10053213 ...

  9. java使用dom4j和XPath解析XML与.net 操作XML小结

    最近研究java的dom4j包,使用 dom4j包来操作了xml 文件 包括三个文件:studentInfo.xml(待解析的xml文件), Dom4jReadExmple.java(解析的主要类), ...

随机推荐

  1. Android Framework------之Property子系统

    概述 Property是Android系统中一个重要的概念,在Android系统内,主要用于系统配置,以及不同服务间的简单信息分享.比如设备名字,蓝牙名字,编译信息,网络dns地址,以及其他的一些基本 ...

  2. 三种实现PHP伪静态页面的方法(转)

    PHP伪静态写法--其一 伪静态又名:URL重写 以下列举了三种方法. 方法一: 比如这个网页 http://www.2cto.com /soft.php/1,100,8630.html 其实处理的脚 ...

  3. 『局域网安全』利用ARP欺骗劫持Cookie

    0x 00 ARP欺骗说明 欺骗原理相关内容就不多叙述了,百度一大堆 实施ARP欺骗在Windows下,Linux下都相关工具 由于在Linux下可以开启ip_forward功能,个人认为Linux下 ...

  4. Sicily 1936. Knight Moves

    题目地址:1936. Knight Moves 思路: 这道题一开始不理解题意…orz...囧,看大神们理解的. 题意是说一个8*8的国际象棋,骑士以马的形式走动(“日”字型),指定两个点,输出最小的 ...

  5. Thread 1 cannot allocate new log的问题分析

    http://blog.csdn.net/zonelan/article/details/7613519 http://leoguan.blog.51cto.com/816378/584494 htt ...

  6. JavaScript 实现数组的foreach

    Array.prototype.forEach = function (action) { for (var i = 0; i < this.length; i++) { action(this ...

  7. VS2013编译libcurl

    首先从这里下载libcurl的package: http://curl.haxx.se/libcurl/ 然后解压,里面有个winbuild文件夹,这里是为windows构建工程的文件夹.里面有nma ...

  8. linux c 之signal 和sigaction区别

    http://blog.csdn.net/muge0913/article/details/7331129 要对一个信号进行处理,就需要给出此信号发生时系统所调用的处理函数.可以对一个特定的信号(除去 ...

  9. bzoj2019 [Usaco2009 Nov]找工作

    Description 奶牛们没钱了,正在找工作.农夫约翰知道后,希望奶牛们四处转转,碰碰运气.而且他还加了一条要求:一头牛在一个城市最多只能赚D(1 <= D <= 1,000)美元,然 ...

  10. Android把图片保存到SQLite中

    1.bitmap保存到SQLite 中 数据格式:Blob db.execSQL("Create table " + TABLE_NAME + "( _id INTEGE ...