获得Document

/**
     * 获取文档
     * 1、获得实例工厂
     * 2、获得解析器
     * 3、获得document
     */

添加结点

/**
     * 1、获得根结点
     * 2、创建结点(设置属性)
     * 3、创建子节点()
     * 4、添加到根节点
     */

更新结点

/**
     * 更新XML
     * 1、获得所有结点
     * 2、获得每一本书
     * 3、获得ID
     * 4、更新
     *     *1、更新id
     *     *2、更新子节点
     */

删除结点

/**
     * 删除XML
     * 1、获得所有结点
     * 2、获得每一本书
     * 3、获得ID
     * 4、删除
     */

保存XML

/**
     * 保存xml
     * 1、获得持久化对象实例工厂
     * 2、获得持久化对象
     * 3、将内存数据保存到磁盘
     *     *源————将document对象封装到Source
     *     *结果————将文件路径封装到Result
     * 4、保存
     */

 public static void main(String[] args) throws Exception {
//获取document
Document document=getDocument();
//更新xml
//UpdateXml(document); //添加XML //AddXML(document); //删除xml
//DeleXML(document); /**
* 保存
*/
Save(document); } /**
* 1、获得根结点
* 2、创建结点(设置属性)
* 3、创建子节点()
* 4、添加到根节点
*/
private static void AddXML(Document document) {
Element rootElement=document.getDocumentElement(); Element newElement=document.createElement("book"); newElement.setAttribute("id", "b003"); Element PriceElement=document.createElement("title");
PriceElement.setTextContent("30");
PriceElement.setAttribute("unit", "¥");
newElement.appendChild(PriceElement); rootElement.appendChild(newElement);
} /**
* 删除XML
* 1、获得所有结点
* 2、获得每一本书
* 3、获得ID
* 4、删除
*/ private static void DeleXML(Document document) {
NodeList nodeList=document.getElementsByTagName("book");
for (int i = 0; i < nodeList.getLength(); i++) {
Node chilNode=nodeList.item(i);
String id=((Element)chilNode).getAttribute("id");
if("b001".equals(id))
{
Node parentNode=chilNode.getParentNode();
parentNode.removeChild(chilNode);
}
}
} /**
* 更新XML
* 1、获得所有结点
* 2、获得每一本书
* 3、获得ID
* 4、更新
* *1、更新id
* *2、更新子节点
*/
private static void UpdateXml(Document document) {
NodeList nodeList=document.getElementsByTagName("book");
for (int i = 0; i < nodeList.getLength(); i++) {
Node node=nodeList.item(i);
Element element=(Element) node;
String id=element.getAttribute("id");
if("b001".equals(id))
{
//element.setAttribute("id", "booooo"); //更新id值
NodeList childNode=element.getElementsByTagName("title");
Element childElement=(Element) childNode.item(0);//childNode.getLength()=1
childElement.setTextContent("Java核心技术");
}
}
} /**
* 保存xml
* 1、获得持久化对象实例工厂
* 2、获得持久化对象
* 3、将内存数据保存到磁盘
* *源————将document对象封装到Source
* *结果————将文件路径封装到Result
* 4、保存
*/
private static void Save(Document document)
throws Exception {
TransformerFactory factory=TransformerFactory.newInstance();
Transformer transformer=factory.newTransformer();
Source xmlSource=new DOMSource(document);
javax.xml.transform.Result outputTarget=new StreamResult("books.jaxp.xml"); transformer.transform(xmlSource, outputTarget); System.out.println("done");
} /**
* 获取文档
* 1、获得实例工厂
* 2、获得解析器
* 3、获得document
*/ private static Document getDocument() throws ParserConfigurationException,
SAXException, IOException {
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();
Document document=builder.parse("books.xml");
return document;
}

DOM 添加 / 更新 / 删除 XML (CURD)的更多相关文章

  1. Dom4j 添加 / 更新 / 删除 XML

    1.获得文档 /** *1.获得解析流 *2.解析XML */ 2.添加 /** *1.获取父元素 *2.创建元素 *3.创建属性并添加到元素中 *4.元素添加到根节点 */ 3.更新 /** *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. Javascript DOM 03 表格添加、删除 + 搜索

    获取 tBodies.tHead.tFoot.rows.cells   隔行变色 鼠标移入高亮   添加.删除一行 DOM方法的使用                                   ...

  6. (转载)html dom节点操作(获取/修改/添加或删除)

    DOM 是关于如何获取.修改.添加或删除 HTML 元素的标准,下面为大家介绍下html dom节点操作,感兴趣的朋友可以参考下   HTML DOM 是关于如何获取.修改.添加或删除 HTML 元素 ...

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

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

  8. JS添加或删除HTML dom元素的方法实例分析

    本文实例讲述了JS代码添加或删除HTML dom元素的方法.分享给大家供大家参考,具体如下: 创建新的 HTML 元素 如需向 HTML DOM 添加新元素,您必须首先创建该元素(元素节点),然后向一 ...

  9. 添加或删除 HTML dom元素

    添加或删除 HTML dom元素 创建新的 HTML 元素 如需向 HTML DOM 添加新元素,您必须首先创建该元素(元素节点),然后向一个已存在的元素追加该元素. <div id=" ...

随机推荐

  1. linux中top命令详解

    linux的top命令里的cpu信息是什么意思呢? Cpu(s): 62.1% us, 15.9% sy,0.1% ni, 19.4% id,2.0% wa,0.1% hi,0.4% si Mem:  ...

  2. centos 6.5 安装阿里云的一键安装包(nginx+php5.4+mysql5.1)

    安装阿里云提供的Linux一键安装web环境全攻略,本想着会有最复杂 ,没想到阿里云工程师提供的包没有任何限制(开始以为只能在阿里去的主机上使用).开源的精神就是好(注:我是伸手党). 环境  vmw ...

  3. PHP几个防SQL注入攻击自带函数区别

    SQL注入攻击是黑客攻击网站最常用的手段.如果你的站点没有使用严格的用户输入检验,那么常容易遭到SQL注入攻击.SQL注入攻击通常通过给站点数据库提交不良的数据或查询语句来实现,很可能使数据库中的纪录 ...

  4. Ajax是什么(转)

    原文:http://www.nowamagic.net/ajax/ajax_Production.php Ajax 由 HTML.JavaScript™ 技术.DHTML 和 DOM 组成,这一杰出的 ...

  5. AE模板替换-众多图片沿着球体旋转!与您分享

    AE-模板替换<众多图片沿球体旋转>效果的视频        近日,本人又一次做了AE的[图片替换]的模板尝试,本人感觉:预览视频时发现的效果较新颖,也有些气势;就是短了些,我安排了,&q ...

  6. Sicily 1931. 卡片游戏

    题目地址:1931. 卡片游戏 思路: 纯属数据结构中队列的应用,可以练练手. 具体代码如下: #include <iostream> #include <queue> usi ...

  7. [工具]前端自动化工具grunt+bower+yoman

    安装过程 安装nodejs 安装grunt,bower,yoeman 命令:(-g 表示全局安装,否则安装到当前目录下) npm install -g grunt-cli npm install -g ...

  8. assets文件夹资源的访问

    访问assets文件夹中的文件,分为以下几个步骤:1.在Activity里面调用getAssets(),获取AssetManager引用2.调用AssetManager.open(String fil ...

  9. Mono Compatibility

    The easiest way to describe what Mono currently supports is:Everything in .NET 4.5 except WPF, WWF, ...

  10. FZU2179/Codeforces 55D beautiful number 数位DP

    题目大意: 求  1(m)到n直接有多少个数字x满足 x可以整出这个数字的每一位上的数字 思路: 整除每一位.只需要整除每一位的lcm即可 但是数字太大,dp状态怎么表示呢 发现 1~9的LCM 是2 ...