获得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. validate插件深入篇

    1.使用valid()来验证表单是否填写正确: <form id="mainform"> <button id="check">< ...

  2. js实现数组内元素随机排序

    其实蛮容易实现的,关键是简洁与否,下面是我自己写的. function randomSort(a){ var arr = a, random = [], len = arr.length; for ( ...

  3. 【行为型】Chain of responsibility模式

    职责链模式将对象的请求处理组成链式结构,并将请求按链式结构逐个传递下去,直接被其中的某个处理者处理为止.由此可知,职责链模式的适用场合是对指定请求,可以有多个请求处理者(或称为请求响应者),但用户并不 ...

  4. 实用C51编程的高级技巧(C51编程)

    一.C51热启动代码的编制 void main() { char data *HotPoint=(char *)0x7f; if((*HotPoint==0xaa)&&(*(--Hot ...

  5. Web.Config 对静态文件 js css img 的客户端缓存策略

    <?xml version="1.0" encoding="utf-8"?> <configuration> <system.we ...

  6. 将大型 Page Blob 的页范围进行分段

     Windows Azure 存储支持一种 Blob 类型,即 Page Blob.Page Blob 通过仅将已写入但未清除的页存入物理存储, 来有效存储稀疏数据.每页大小为 512 字节.Ge ...

  7. java实现的23种设计模式 (个人推荐)

    http://zz563143188.iteye.com/blog/1847029 mark下,个人用,大家会也可以看看写的不错.

  8. ios 数组倒序和数组转字符串

    NSMutableArray *array = [NSMutableArray arrayWithObjects:",nil]; NSArray* reversedArray = [[arr ...

  9. Android系统如何实现UI的自适应

    做Android应用的人都知道,要一个apk适用多个不同的手机屏幕是很容易的,就是在项目的res文件夹下面有多套相关的资源文件.程序运行的时候,Android系统会根据当前设备的信息去加载不同文件夹下 ...

  10. 300元差价选谁好 魅蓝note对比魅蓝手机

    http://mobile.pconline.com.cn/608/6089437.html [PConline 对比评测]999元的魅蓝note和699元的魅蓝手机先后被发布,代表着魅族中低端手机已 ...