DOM 添加 / 更新 / 删除 XML (CURD)
获得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)的更多相关文章
- Dom4j 添加 / 更新 / 删除 XML
1.获得文档 /** *1.获得解析流 *2.解析XML */ 2.添加 /** *1.获取父元素 *2.创建元素 *3.创建属性并添加到元素中 *4.元素添加到根节点 */ 3.更新 /** *1. ...
- PHP中Cookie的使用---添加/更新/删除/获取Cookie 及 自动填写该用户的用户名和密码和判断是否第一次登陆
PHP中Cookie的使用---添加/更新/删除/获取Cookie 及 自动填写该用户的用户名和密码和判断是否第一次登陆 什么是cookie 服务器在客户端保存用户的信息,比如登录名,密码等 这些数 ...
- ado.net 批量添加 更新 删除
自曾列就别往下看 别折腾了 使用 SqlBulkCopy ,dataTable 必须跟sql里面的表字段完全一样 下面在sqlserver中演示 mysql 请google MySqlBulkLo ...
- Mysql添加更新删除数据-表
例如 此处拥有一个表名为 uuser 为表添加新数据 ,'); ,'); ,'); 假如只想添加uid和uname ,'小张'); 那么pas自动填充为NULL. 为表更新数据 这里把小王的pas改成 ...
- Javascript DOM 03 表格添加、删除 + 搜索
获取 tBodies.tHead.tFoot.rows.cells 隔行变色 鼠标移入高亮 添加.删除一行 DOM方法的使用 ...
- (转载)html dom节点操作(获取/修改/添加或删除)
DOM 是关于如何获取.修改.添加或删除 HTML 元素的标准,下面为大家介绍下html dom节点操作,感兴趣的朋友可以参考下 HTML DOM 是关于如何获取.修改.添加或删除 HTML 元素 ...
- iOS回顾笔记(09) -- Cell的添加、删除、更新、批量操作
iOS回顾笔记(09) -- Cell的添加.删除.更新.批量操作 项目中经常有对UITableViewCell做各种操作的需求: 添加一个新的cell 删除某行cell 刷新cell上某行数据(如修 ...
- JS添加或删除HTML dom元素的方法实例分析
本文实例讲述了JS代码添加或删除HTML dom元素的方法.分享给大家供大家参考,具体如下: 创建新的 HTML 元素 如需向 HTML DOM 添加新元素,您必须首先创建该元素(元素节点),然后向一 ...
- 添加或删除 HTML dom元素
添加或删除 HTML dom元素 创建新的 HTML 元素 如需向 HTML DOM 添加新元素,您必须首先创建该元素(元素节点),然后向一个已存在的元素追加该元素. <div id=" ...
随机推荐
- bayes
from numpy import * import time starttime = time.time() def loadDataSet(): postingList = [['my', 'do ...
- 微星b85(b85i b85-gaming) 系列dsdt
从网友得了一个b85-gaming 的dsdt,发现跟我的b85i的dsdt错误都是一样的. 发布上来给需要的人参考. 微星这个系列的dsdt不能用dsdt editor的fix功能,不然文件会越来越 ...
- ural 1106 Two Teams
http://acm.timus.ru/problem.aspx?space=1&num=1106 #include <cstdio> #include <cstring&g ...
- 一本QT书,连接MySQL图文并茂
http://qtdebug.com/index.html http://qtdebug.com/DB-AccessMySQL.html
- MFC基本框架
MFC基本框架 By 小戴 发表于 2006-12-21 15:59:00 MFC 应用程序框架 1. MFC 简介: MFC ( Microsoft Foundation Class )是由 ...
- mvn 使用中的错误
出现这种错误的时候:mvn Error building POM may not be this project's POM,报的是那个jar 包,就删除那个jar 包,重新mvn clean ins ...
- cursor: pin S
declare v_sql varchar2(200); begin loop v_sql :='select seq1.nextval from dual'; execute immediate v ...
- 安装与使用smarty
1.安装 下载最新的smarty.下载地址:http://www.smarty.net/download 下载成功后,解压压缩包后的文件如图所示: 将解压后的文件存放在web文档根目录外的某个位置.w ...
- 【转】编写Chrome扩展程序
Chrome的扩展程序很多,也很容易入门,可以来简单实现一下 看看,慢慢就能实现出一个扩展程序来 每个扩展程序应用一般会包含: 一个manifest清单文件 html文件 js文件 其他文件等 可以看 ...
- C++Memset误区
Memset的原型是void *memset(void *s, char ch, size_t n); Memset是按字节赋值的,对char以外的类型赋0(00000000) -1(11111111 ...