public class DOMForXml {
/**
* 获得doc对象
*/
public Document getDocument(String fileName) {
Document document = null;
try {
DocumentBuilderFactory factory = DocumentBuilderFactory
.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
document = builder.parse(new File(fileName));
} catch (Exception e) {
e.printStackTrace();
}
return document;
}
/**
* 将改动持久到文件
*/
public void modifyFile(Document doc, String distFileName) {
try {
TransformerFactory tf = TransformerFactory.newInstance();
Transformer tfer = tf.newTransformer();
DOMSource dsource = new DOMSource(doc);
StreamResult sr = new StreamResult(new File("student.xml"));
tfer.transform(dsource, sr);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 解析
*/
public void paseXml(String fileName) {
Document document = getDocument(fileName);
NodeList nodeList = document.getElementsByTagName("student");
for (int i = 0; i < nodeList.getLength(); i++) {
StringBuilder sb = new StringBuilder();
sb.append("姓名:"
+ document.getElementsByTagName("name").item(i)
.getFirstChild().getNodeValue());
sb.append(" , ");
sb.append("年龄:"
+ document.getElementsByTagName("age").item(i)
.getFirstChild().getNodeValue());
sb.append(" , ");
sb.append("性别:"
+ document.getElementsByTagName("sex").item(i)
.getFirstChild().getNodeValue());
sb.append(" , ");
sb.append("地址:"
+ document.getElementsByTagName("address").item(i)
.getFirstChild().getNodeValue());
System.out.println(sb.toString());
}
}
/**
* 创建一个新的学生
*/
public void addNewNode(String name, String age, String sex,
String address) {
try {
Document document = getDocument("student.xml");
NodeList nodeList = document.getElementsByTagName("students");
// 创建新的节点
Node studentNode = document.createElement("student");
Node nameNode = document.createElement("name");
nameNode.appendChild(document.createTextNode(name));
Node ageNode = document.createElement("age");
ageNode.appendChild(document.createTextNode(age));
Node sexNode = document.createElement("sex");
sexNode.appendChild(document.createTextNode(sex));
Node addressNode = document.createElement("address");
addressNode.appendChild(document.createTextNode(address));
// 添加节点
studentNode.appendChild(nameNode);
studentNode.appendChild(ageNode);
studentNode.appendChild(sexNode);
studentNode.appendChild(addressNode);
nodeList.item(0).appendChild(studentNode);
// 此时真正的处理将新数据添加到文件中(磁盘)
TransformerFactory tf = TransformerFactory.newInstance();
Transformer tfer = tf.newTransformer();
DOMSource dsource = new DOMSource(document);
StreamResult sr = new StreamResult(new File("student.xml"));
tfer.transform(dsource, sr);
} catch (Exception e) {
e.printStackTrace();
}
paseXml("student.xml");
}
/**
* 删除一个节点
*/
public void deleteNode(String name) {
Document document = getDocument("student.xml");
NodeList nodeList = document.getElementsByTagName("name");
for (int i = 0; i < nodeList.getLength(); i++) {
String value = nodeList.item(i).getFirstChild()
.getTextContent();
if (name != null && name.equalsIgnoreCase(value)) {
Node parentNode = nodeList.item(i).getParentNode();
document.getFirstChild().removeChild(parentNode);
}
}
modifyFile(document, "student.xml");
}
/**
* 根据name修改某个节点的内容
*/
public void updateNode(String name) {
Document document = getDocument("student.xml");
NodeList nodeList = document.getElementsByTagName("name");
for (int i = 0; i < nodeList.getLength(); i++) {
String value = nodeList.item(i).getFirstChild()
.getTextContent();
if (name != null && name.equalsIgnoreCase(value)) {
Node parentNode = nodeList.item(i).getParentNode();
NodeList nl = parentNode.getChildNodes();
for (int j = 0; j < nl.getLength(); j++) {
String modifyNode = nl.item(j).getNodeName();
if (modifyNode.equalsIgnoreCase("age")) {
nl.item(j).getFirstChild().setTextContent("25");
}
}
}
}
modifyFile(document, "student.xml");
}
}
<?xml version="1.0" encoding="UTF-8" ?>
<students>
<student>
<name>TigerLee</name>
<age>26</age>
<sex>男</sex>
<address>北京海淀</address>
</student>
<student>
<name>Snow</name>
<age>24</age>
<sex>女</sex>
<address>山东</address>
</student>
</students>
分享到:
相关推荐
在“dom4j解析xml文件(增删改查)”这个主题中,我们将深入探讨如何使用DOM4J来实现XML文档的四种基本操作:增加元素、删除元素、更新元素内容以及查询元素。 首先,让我们了解DOM4J的基本用法。在解析XML文件时,...
QT_DOM方式操作xml文件增删改查 博文参考: https://txwtech.blog.csdn.net/article/details/126321336?spm=1001.2014.3001.5502
至于文件名称“ParseXML”,这可能是一个示例代码文件,用于演示如何在编程环境中解析XML文档。常见的解析库包括Python的ElementTree,JavaScript的DOM API,以及.NET Framework的System.Xml命名空间等。 总之,XML...
在本"XML课程设计实现增删改查"项目中,我们聚焦于如何使用XML进行数据存储,并通过Java编程实现对这些数据的CRUD(创建Create、读取Read、更新Update、删除Delete)操作。 XML的基本结构包括元素(Element)、属性...
在实际应用中,XML的增删改查操作可能会结合DOM(Document Object Model)、SAX(Simple API for XML)或XPath(XML Path Language)等技术进行,以提高性能或实现更复杂的查询。同时,对于大型XML文件,可能需要...
DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了简单而灵活的方式来解析、创建、修改和查询XML文档,是Java开发中的一个常用...通过实践这些基本操作,开发者可以轻松地在自己的项目中实现XML的增删改查功能。
本篇文章将深入探讨如何在Qt环境下进行XML文档的操作,包括增、删、改、查等常见功能。 首先,Qt中的`QDomDocument`类是用于解析和操作XML文档的核心类。它基于DOM(Document Object Model)模型,允许开发者以树形...
本资源提供了XML的增删改查功能的源代码实现,帮助学习者快速掌握如何在实际项目中操作XML文档。下面将详细解释XML的基本概念以及如何实现增删改查功能。 XML的结构: XML文档由元素、属性、文本内容、注释等构成。...
以下是对"XML基于JAVA DOM 增删改查"这一主题的详细解释。 首先,我们需要理解DOM解析的基本概念。DOM解析器将XML文档转化为一个对象模型,每个元素、属性、文本等都被表示为一个对象,这些对象构成了一个层级结构...
在这个"java DOM解析xml操作大全,增删改查"的主题中,我们将深入探讨如何使用DOM解析XML,以及如何结合三层架构(表示层、业务逻辑层、数据访问层)来实现这些操作。 首先,DOM解析的核心是`javax.xml.parsers....
### XML增删改查操作 #### 增加 在XML中添加新元素通常涉及以下步骤: 1. 加载XML文档到DOM对象。 2. 创建新元素并设置其属性。 3. 将新元素插入到适当位置。 4. 保存更改后的XML文档。 例如,使用PHP的DOM...
【Asp+xml 实现增删改查】是一个关于使用ASP技术对XML文件进行基本操作的教程。在Web开发中,XML(eXtensible Markup Language)常被用作数据存储和交换格式,因为它具有结构清晰、易于解析和跨平台的特点。ASP...
首先,从"JAVA 操作 XML 增删改查"这个标题来看,我们可以预知内容将涵盖XML文件的基本操作。这些操作通常包括创建XML文件、读取XML内容、修改XML元素以及删除XML节点。在JAVA中,主要使用DOM(Document Object ...
本教程将深入探讨如何使用XML进行增删改查的操作,并提供相应的Java源代码示例。 首先,我们需要理解XML的基本结构。XML文档由元素构成,元素通过标签来定义,如`<element>`...`</element>`。属性是附加在元素上的...
本篇文章将详细探讨Java对XML文档进行增删改查的多种方法。 1. **解析XML文档** 在Java中,解析XML主要有DOM(Document Object Model)、SAX(Simple API for XML)和StAX(Streaming API for XML)三种方式。 ...
编写Web应用程序(JavaEE平台上的应用,能够运行在Tomcat服务器上),实现学生信息的增删改查。 在Web页面上实现添加一个学生记录,删除某个学生记录,修改某个学生记录,和按照姓名,学号进行查询。 要求列表输出...
在这个“对XML进行增删改查例子”中,我们将探讨如何操作XML文档,包括添加新节点、删除已有节点、修改现有节点内容以及查询XML结构中的特定信息。 1. **XML的基本结构** XML文档由一系列元素组成,每个元素都有一...
本示例中,"winform对xmL的增删改查"实现了在WinForm应用程序中对XML文件的操作,包括添加数据、删除数据、修改数据以及查询数据。以下是关于这些操作的详细解释: 1. **XML文件的读取**: - 使用`System.Xml`命名...
要实现对XML文件的增、删、改、查操作,我们需要使用Java的标准库JAXB(Java Architecture for XML Binding)或者DOM(Document Object Model)、SAX(Simple API for XML)等解析器。下面将详细介绍这些操作的具体...
在IT行业中,XML(eXtensible Markup Language)是一种用于存储和传输数据的标准化格式,广泛应用在各种软件和网络服务中。...只要理解了DOM模型的基本概念,就能轻松掌握Qt5中XML文件的增删改查操作。