Dom解析xml文件的添加与删除方法
来源:互联网 发布:淘宝网安卓版 编辑:程序博客网 时间:2024/06/05 02:56
package xml3;
import java.io.File;
import java.io.IOException;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.TransformerFactoryConfigurationError;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.*;
import org.xml.sax.SAXException;
/**
* 获取Document对象
* @author Administrator
*
*/
public class DocumentDemo {
public Document getDocument(File file) throws SAXException, IOException, ParserConfigurationException{
return DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(file);
}
/**
* 插入的方法
*/
public void insertElement() throws SAXException, IOException, ParserConfigurationException, TransformerFactoryConfigurationError, TransformerException{
// 获取document对象
Document document=getDocument(new File("rem.xml"));
// 创建节点
Element userElement=document.createElement("user");
// 创建节点
Element nameElement=document.createElement("name");
// 设置节点文本
nameElement.setTextContent("王");
// 创建节点
Element passElement=document.createElement("pass");
//创建节点
Text passText=document.createTextNode("123");
// 把文本节点添加到passElement节点中
passElement.appendChild(passText);
// 创建属性节点
Attr idAttr=document.createAttribute("id");
idAttr.setValue("x001");
userElement.setAttribute("data","2013-10-10");
// 设置属性
userElement.setAttributeNode(idAttr);
// 把创建的name节点与pass节点添加到user节点中
userElement.appendChild(nameElement);
userElement.appendChild(passElement);
// 获取根节点
Element root=document.getDocumentElement();
// 添加到根节点末尾
root.appendChild(userElement);
// 主要是实现把更改的结果给写入到rem.xml文件中
Transformer transformer=TransformerFactory.newInstance().newTransformer();
transformer.transform(new DOMSource(document),new StreamResult(new File("rem.xml")));
}
/**
* 删除的方法
* @throws Exception
*/
public void deleteNode() throws Exception{
// 获取document对象
Document document=getDocument(new File("rem.xml"));
// 获取指定的节点
Element element=document.getElementById("x002");
// 首先获取父节点,然后再删除
Node node=element.getParentNode();
// 删除
node.removeChild(element);
// 主要是实现把更改的结果给写入到rem.xml文件中
Transformer transformer=TransformerFactory.newInstance().newTransformer();
transformer.transform(new DOMSource(document),new StreamResult(new File("rem.xml")));
}
public static void main(String[] args) throws Exception{
//new DocumentDemo().insertElement();
new DocumentDemo().deleteNode();
}
}
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!--必须加上这块代码才能执行删除-->
<!DOCTYPE users[
<!ELEMENT users (user+)>
<!ELEMENT user (name|pass|auto)*>
<!ELEMENT name (#PCDATA)>
<!ELEMENT pass (#PCDATA)>
<!ELEMENT auto (#PCDATA)>
<!ATTLIST user date CDATA #IMPLIED
id ID #IMPLIED>
]>
<users>
<user>
<name>345</name>
<pass>1234</pass>
<auto>true</auto>
</user>
<user date="2013-10-10" id="x001">
<name>
王
</name>
<pass>123</pass>
</user>
<user date="2013-10-10" id="x002">
<name>
王
</name>
<pass>123</pass>
</user>
<user date="2013-10-10" id="x003">
<name>
王
</name>
<pass>123</pass>
</user>
<user date="2013-10-10" id="x004">
<name>王</name>
<pass>123</pass>
</user>
</users>
- Dom解析xml文件的添加与删除方法
- dom方法解析xml文件
- DOM解析XML文件方法
- dom对xml文件的解析,删除,修改
- xml文件的dom解析
- java解析xml文件的2种方法:sax,dom
- Android解析XML文件的三方法之DOM
- SAX与DOM 解析XML文件的区别
- DOM与DOM4J对XML文件的解析
- Java解析XML文件方法之一(DOM)
- 使用DOM方法解析xml文件
- xml文件的解析-1 dom解析
- Dom与Pull方式解析XML文件
- xml文件的解析解析方式及Dom解析与Sax解析的区别
- DOM解析XML文件
- xml文件解析-DOM
- dom解析xml文件
- DOM解析XML文件
- Java设计模式菜鸟系列(十六)原型模式建模与实现
- Android获取状态栏和标题栏的高度
- 通过Nginx搭建flv流媒体服务器
- linux下杀死进程(kill)的N种方法
- 约瑟夫环问题
- Dom解析xml文件的添加与删除方法
- log4j--控制台/文本/数据库---三模式
- 安装软件时对话框默认允许一路安装
- mysql 之 row_number() over ()
- MySQL远程访问授权
- 【Excel】用excel生成矩阵
- IOS学习 IOS8对应之一---------定位问
- 用“设计力量变革中国”:设计成就中国高峰论坛在沪举行
- andorid代码下载20141011