一:将内存中写好的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. Himi的base64代码

    // // DataHimi.cpp // Oh!MonsterMR // // Created by Himi on 12-3-8. // Copyright (c) 2012年 Augustimp ...

  2. Linux数据流重定向

    一.什么是数据流重导向: 数据流重导向 (redirect) 由字面上的意思来看,好像就是将『数据传导到其他地方去』,没错-数据流重导向就是将某个命令运行后应该要出现在屏幕上的数据, 给他传输到其他的 ...

  3. [iOS 多线程 & 网络 - 2.7] - NSURLCache

    A.基本知识 1.为什么需要缓存?   有时候一个url会请求多次,得到的内容确实一样的   2.缓存的概念     3.缓存数据的过程     当服务器返回数据时,需要做以下步骤(1)使用服务器的数 ...

  4. HDU 3668 Volume (数学,积分)

    题意:求图中交叉圆柱体的体积! 析:大体思路很明确,把两个圆柱的体积加起来 减去中间公共部分的即可!第一步首先得想到公共部分是一个怎样的图形.这个在高数下册例题中有讲到! 中间实线部分就是第一卦限内的 ...

  5. Unity3D之Mecanim动画系统学习笔记(八):Animator Layers(动画分层)

    解决什么问题? 动画分层可以用来解决什么样的问题呢?试想一下如果你要开发一款第三人称的射击游戏,那么肯定是希望身体的动画分为上下两部分,上方根据瞄准的位置和是否射击进行动画播放,下方根据移动播放动画. ...

  6. MFC 应用、模板、框架、文档、视图 的关系

    从该对象 如何访问其他对象 全局函数 调用全局函数AfxGetApp可以得到CWinApp应用类指针 应用 AfxGetApp()->m_pMainWnd为框架窗口指针:用CWinApp::Ge ...

  7. MFC拆分窗口及它们之间的数据交换(转)

    转自:http://blog.csdn.net/nuptboyzhb/article/details/7455471 源代码:http://download.csdn.net/detail/nuptb ...

  8. ECSHOP数据表结构完整仔细说明教程

    From:http://www.ecshop119.com/ecshopjc-868.html s_account_log //用户账目日志表 字段 类型 Null 默认 注释 log_id medi ...

  9. hibernate之saveorupdate()、save()、update()都有什么区别

    saveorupdate()如果传入的对象在数据库中有就做update操作,如果没有就做save操作. save()在数据库中生成一条记录,如果数据库中有,会报错说有重复的记录. update()就是 ...

  10. SSL协议与数字证书原理

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html 内部邀请码:C8E245J (不写邀请码,没有现金送) 国 ...