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=" ...
随机推荐
- phpcms v9联动菜单的调用方法_详解get_linkage函数
phpcms v9联动菜单调用方法[此为内容页调用方法]: {get_linkage($areaid,1,' >> ',1)} 显示效果: phpcms吧 >> 模板下载 &g ...
- Java在ACM中的使用
1.基本框架 import java.oi.*; import java.util.* public class Main { public static void main(St ...
- python 操作 mysql基础补充
前言 本篇的主要内容为整理mysql的基础内容,分享的同时方便日后查阅,同时结合python的学习整理python操作mysql的方法以及python的ORM. 一.数据库初探 在开始mysql之前先 ...
- 第几天 AC 杭电
第几天? Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- JQuery的$和其它JS发生冲突的快速解决方法
众所周知,jQuery是目前最流行的JS封装包,简化了很多复杂的JS程序,JQuery讲浏览器DOM树定义为$,通过$来获取各个子节点. 然后,JS插件并非只有JQuery,还有prototype.j ...
- 简单讲解iOS应用开发中的MD5加密的相关使用
简单讲解iOS应用开发中的MD5加密的相关使用 作者:文顶顶 字体:[增加 减小] 类型:转载 时间:2015-12-19 我要评论 这篇文章主要介绍了iOS应用开发中的MD5加密的相关使用, ...
- SparkStreaming 源码分析
SparkStreaming 分析 (基于1.5版本源码) SparkStreaming 介绍 SparkStreaming是一个流式批处理框架,它的核心执行引擎是Spark,适合处理实时数据与历史数 ...
- 读、写SD上的文件请按如下步骤进行
1.调用Environment的getExternalStorageState()方法判断手机上是否插入了SD卡,并且应用程序具有读写SD卡的权限.例如使用如下代码//Environment.getE ...
- 设置tableWidget->verticalScrollBar()的属性
tableWidget->verticalScrollBar()->setStyleSheet("QScrollBar{background:rgb(255,255,0); wi ...
- 静态编译Qt5.4.1和Qt WebKit
图灵社区文章地址:http://www.ituring.com.cn/article/195148WebKit是个好东西,做爬虫.显示网页还是想用HTML来做桌面应用的界面都可以用他,不过一直以来都觉 ...