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=" ...
随机推荐
- 学习笔记之AJAX无刷新分页
利用AJAX实现无刷新分页技术原理: 其主要是利用AJAX的异步处理机制,实现数据的异步传递,它隐藏了客户端向服务端请求数据的状态,在客户端表现为无刷新的显示状态. 实现分页的步骤: 1.客服端点击页 ...
- linux磁盘空间用满的处理方法
linux下空间满可能有两种情况 可以通过命令 df -h 查看磁盘空间占用,实际上是查看磁盘块占用的文件(block) df -i 查看索引节点的占用(Inodes) 磁盘块和索引节点其中之一满 ...
- 提取所有mtk机型的线刷包
首先手机root且安装busybox和超级终端软件,这里不提供自己百度一大堆 一.制作scatter 示范 PRELOADER 0x0 { } MBR 0x600000 { } EBR1 0x6800 ...
- 转:Red Hat JBoss团队发布WildFly 8,全面支持Java EE 7并包含全新的嵌入式Web服务器
原文来自于:http://www.infoq.com/cn/news/2014/02/wildfly8-launch Red Hat的JBoss部门今天宣布WildFly 8正式发布.其前身是JBos ...
- [LeetCode 120] - 三角形(Triangle)
问题 给出一个三角形,找出从顶部至底部的最小路径和.每一步你只能移动到下一行的邻接数字. 例如,给出如下三角形: [ [2], [3,4], [6,5,7], [4,1,8,3] ] 从顶部至底部的最 ...
- 理解ATL中的一些汇编代码(通过Thunk技术来调用类成员函数)
我们知道ATL(活动模板库)是一套很小巧高效的COM开发库,它本身的核心文件其实没几个,COM相关的(主要是atlbase.h, atlcom.h),另外还有一个窗口相关的(atlwin.h), 所以 ...
- jmap命令结合mat插件分析内存泄露--OQL
http://smallnetvisitor.iteye.com/blog/1826434 User.java package gc; import java.util.ArrayList; impo ...
- 【转】使用dos2unix批量转换文件
原文网址:http://kuaile.in/archives/1208 dos2unix是Linux下的一个用户转换格式的程序,由于windows上文件的结束符和linux上的不同,那么在window ...
- android 在EditText中显示表情图片
public class MainActivity extends Activity { protected void onCreate(Bundle savedInstanceState) { su ...
- 日积月累:EditText软键盘的显示和隐藏
在工作过程中,常常会遇见需要根据自己的需求,控制文本框的键盘显示和隐藏. 通过查阅Android文档,介绍可以通过在清单文件中<activity>元素中添加android:windowSo ...