一:将内存中写好的xml文件读取到硬盘上

二:DOM方式对xml文件进行增删改查

1:添加节点(默认是在最后的子节点后面添加)

 @Test
// 向元素中添加节点<version>1.0</version>
public void test5() throws Exception {
Document doc = getDoc();
Node node = doc.getElementsByTagName("book").item(0); // 创建节点
Element newChild = doc.createElement("version");
newChild.setTextContent("1.3");
// 添加节点
node.appendChild(newChild); // 将内存中xml读取到硬盘中
TransformerFactory factory = TransformerFactory.newInstance();
Transformer tf = factory.newTransformer();
tf.transform(new DOMSource(doc), new StreamResult(new FileOutputStream(
"xml/books.xml")));
}

2:在指定位置添加节点

 @Test
// 2:在指定位置添加子节点
public void test6() throws Exception {
Document doc = getDoc();
// 获取要添加节点的父节点
Node node = doc.getElementsByTagName("book").item(1); // 获取参考节点
Node refNode = doc.getElementsByTagName("author").item(1); // 创建节点
Node childNode = doc.createElement("version");
childNode.setTextContent("2.34"); // 将节点添加到指定位置
node.insertBefore(childNode, refNode); // 将内存中xml读取到硬盘中
TransformerFactory factory = TransformerFactory.newInstance();
Transformer tf = factory.newTransformer();
tf.transform(new DOMSource(doc), new StreamResult(new FileOutputStream(
"xml/books.xml")));
}

3:删除节点(方式一)

 @Test
// 3:删除节点
public void test7() throws Exception {
Document doc = getDoc();
// 获取要删除节点的父节点
Node node = doc.getElementsByTagName("book").item(1);
Node childNode = doc.getElementsByTagName("version").item(0);
node.removeChild(childNode); // 将内存中xml读取到硬盘中
TransformerFactory factory = TransformerFactory.newInstance();
Transformer tf = factory.newTransformer();
tf.transform(new DOMSource(doc), new StreamResult(new FileOutputStream(
"xml/books.xml")));
}

4:删除节点(方式二)

 @Test
public void test8() throws Exception {
Document doc = getDoc();
// 获取要删除的节点
Node childNode = doc.getElementsByTagName("version").item(0);
childNode.getParentNode().removeChild(childNode); // 将内存中xml读取到硬盘中
TransformerFactory factory = TransformerFactory.newInstance();
Transformer tf = factory.newTransformer();
tf.transform(new DOMSource(doc), new StreamResult(new FileOutputStream(
"xml/books.xml")));
}

5:修改节点内容

 @Test
// 修改节点内容
public void test9() throws Exception {
Document doc = getDoc();
// 获取要删除的节点
Node node = doc.getElementsByTagName("price").item(0);
node.setTextContent("200"); // 将内存中xml读取到硬盘中
TransformerFactory factory = TransformerFactory.newInstance();
Transformer tf = factory.newTransformer();
tf.transform(new DOMSource(doc), new StreamResult(new FileOutputStream(
"xml/books.xml")));
}

6:添加节点属性

 @Test
// 添加节点属性
public void test10() throws Exception {
Document doc = getDoc();
// 获取要删除的节点
Element ele = (Element) doc.getElementsByTagName("name").item(0);
ele.setAttribute("style", "width:80px;"); // 将内存中xml读取到硬盘中
TransformerFactory factory = TransformerFactory.newInstance();
Transformer tf = factory.newTransformer();
tf.transform(new DOMSource(doc), new StreamResult(new FileOutputStream(
"xml/books.xml")));
}

7:删除节点属性

 @Test
// 删除节点属性
public void test11() throws Exception {
Document doc = getDoc();
// 获取要删除属性的节点
Element ele = (Element) doc.getElementsByTagName("name").item(0);
ele.removeAttribute("style"); // 将内存中xml读取到硬盘中
TransformerFactory factory = TransformerFactory.newInstance();
Transformer tf = factory.newTransformer();
tf.transform(new DOMSource(doc), new StreamResult(new FileOutputStream(
"xml/books.xml")));
}

javaweb学习总结十一(JAXP对XML文档进行DOM解析)的更多相关文章

  1. 2.1 使用JAXP 对 xml文档进行DOM解析

    //使用 jaxp 对xml文档进行dom解析 public class Demo2 { //必要步骤 @Test public void test() throws Exception { //1. ...

  2. 使用JAXP对xml文档进行DOM解析基础

    XML解析方式分为两种:dom和sax         dom:(Document Object Model, 即文档对象模型) 是 W3C 组织推荐的处理 XML 的一种方式.       sax: ...

  3. 使用JAXP对XML文档进行DOM解析

    import java.io.FileOutputStream; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers. ...

  4. 2.2 使用 JAXP 对XML文档进行SAX解析

    使用JAXP 对 XML文档进行 SAX解析: public class Demo1 { /** * 使用JAXP对XML文档进行SAX解析 * @throws Exception * @throws ...

  5. javaweb学习总结十二(JAXP对XML文档进行SAX解析)

    一:JAXP使用SAX方式解析XML文件 1:dom解析与sax解析异同点 2:sax解析特点 二:代码案例 1:xml文件 <?xml version="1.0" enco ...

  6. XML文档读取-DOM

    DOM(Document Object Model),“文档对象模型”早期是为了解决不用浏览器间数据兼容问题提出的解决方案,现在已经是W3C组织推荐的处理可扩展标志语言的标准编程接口. W3C DOM ...

  7. 源生API解析XML文档与dom4j解析XML文档

    一.XML语言 XML是一种可扩展的标记语言,是一种强类型的语言,类似HTML(超文本标记语言,是一种弱类型的语言).XML是一种通用的数据交换格式(关系型数据库),综上所诉:XML可以传输数据,也可 ...

  8. Java高级特性 第13节 解析XML文档(1) - DOM和XPath技术

    一.使用DOM解析XML文档 DOM的全称是Document Object Model,也即文档对象模型.在应用程序中,基于DOM的XML分析器将一个XML文档转换成一个对象模型的集合(通常称DOM树 ...

  9. 使用Dom4j对XML文档创建与解析

    创建XML文件: public class Dom4jCreateXml { public void testCreatXml() { //创建文档对象 Document document = Doc ...

随机推荐

  1. Java IO (4) - Writer

    Java IO (4) - Writer 前言 JavaIO一共包括两种,一种是stream,一种是reader/writer,每种又包括in/out,所以一共是四种包.Java 流在处理上分为字符流 ...

  2. [iOS UI进阶 - 6.1] 核心动画CoreAnimation

    A.基本知识 1.概念 Core Animation是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍,使用它需要先添加QuartzCore.framework和引入对 ...

  3. [iOS基础控件 - 6.9.1] 聊天界面Demo 代码

    框架:   所有代码文件:   Model: // // Message.h // QQChatDemo // // Created by hellovoidworld on 14/12/8. // ...

  4. CSS3之背景剪裁Background-clip

    CSS3之背景剪裁Background-clip是CSS3中新添加的内容.这个属性还是比较简单的,主要分五个属性值:border.padding.content.no-clip和text.下面将针对这 ...

  5. Lua学习笔记(四):表和数组

    表 在Lua中,表(table)是十分重要的一种数据结构,实际上Lua对于复杂数据类型也仅提供了表给我们,我们通过表可以实现我们需要的大部分重要的数据结构,比如数组. table类型实现了关联数组,关 ...

  6. EasyUI datagrid添加右键菜单项

    js代码 //动态加载数据表格 function InitData() { $('#grid').datagrid({ url: '/Home/Query?r=' + Math.random(), / ...

  7. linux信号量超过系统限制

    部署一台新服务器,信号量报错,观察也没有key冲突,错误分析及解决如下: 创建一个不存在的信号量集返回参数错误的报错,因为信号量集的信号量数量超过了系统限制. 系统默认 /home/poc#ipcs ...

  8. 微软IIS服务器的最佳优化工具- IIS Tuner

      dudu的 <让Windows Server 2008 + IIS 7+ ASP.NET 支持10万个同时请求>,里面涉及到需要手工调整参数的地方.在这篇文章中,我们给你介绍一个IIS ...

  9. JAVA事务的概念

    From:http://www.cnblogs.com/kristain/articles/2038397.html 一.什么是事务 事务是访问数据库的一个操作序列,数据库应用系统通过事务集来完成对数 ...

  10. CSS 文本格式

    整理自:(http://www.w3school.com.cn/css/css_text.asp) Text Color 颜色属性被用来设置文字的颜色. 颜色是通过CSS最经常的指定: 十六进制值 - ...