`

DOM解析XML文件(修改属性,增加节点)

阅读更多

前面用DOM解析XML只是对里面的数据读取出来,而DOM解析最大的优势并不是读取,而是可以方便的修改里面的元素。

接着上回的代码,在类中新建一个方法来进行XML文件的修改和增加节点操作。

DOM修改的原理是,DOM在读取XML文件时读入的是文件中所有的节点组成一个DOM树的Document文件,这个文件被读取出来之后我们用JAVA语言可以操作它,不过这样修改也仅仅是修改了JAVA中的这个对象而已,所有在我们将DOM文件修改完了之后还要进行保存工作,这样才是真正的做到了修改XML文件。

原来的XML文档:

<?xml version="1.0" encoding="utf-8"?>
<student>
	<stu num="1111">
		<name>张三丰</name>
		<sex>男</sex>
		<cla>武当</cla>
	</stu>
	<stu num="2345">
		<name>小龙女</name>
		<sex>女</sex>
		<cla>古墓</cla>
	</stu>
	
</student>

 

代码:

/**
	 * 修改XML文件
	 * @throws Exception 
	 */
	public static void changeXML(Document doc) throws Exception{
		//------------------------修改节点中元素的内容
		//找到要修改的节点名称的所有节点,得到名字相同的节点队列
		NodeList nodes = doc.getElementsByTagName("name");
		//在队列中选择要修改的节点
		Node n = nodes.item(0);
		//修改该节点的文本
		n.setTextContent("逗逼");
		
		//------------------------增加节点的子元素
		//找到要修改的节点名称的所有节点,得到名字相同的节点队列
		NodeList nodes1 = doc.getElementsByTagName("student");
		//在队列中选择要修改的节点
		Node n1 = nodes1.item(0);
		//创建要增加的节点元素
		Element nn = doc.createElement("stu");
		//设置节点属性
		Attr attr = doc.createAttribute("num");
		attr.setValue("6666");
		nn.setAttributeNode(attr);
		//增加新元素stu的子元素
		//姓名
		Element nn1 = doc.createElement("name");
		nn1.setTextContent("第三个");
		nn.appendChild(nn1);
		n1.appendChild(nn);
		//性别
		Element nn2 = doc.createElement("sex");
		nn2.setTextContent("第三个");
		nn.appendChild(nn2);
		n1.appendChild(nn);
		//班级
		Element nn3 = doc.createElement("cla");
		nn3.setTextContent("第三个");
		nn.appendChild(nn3);
		n1.appendChild(nn);
		
		System.out.println(doc.getElementsByTagName("stu").getLength());
		
		
		//-------------------------保存到文件中
		//创建一个用来转换DOM对象的工厂对象
		TransformerFactory factory = TransformerFactory.newInstance();
		//获得转换器对象
		Transformer t = factory.newTransformer();
		//定义要转换的源对象
		DOMSource xml = new DOMSource(doc);
		//定义要转换到的目标文件
		StreamResult s = new StreamResult(new File("D:\\xmlEX\\student4.xml"));
		//开始转换
		t.transform(xml, s);
		
		
	}

修改后的XML文档:

<?xml version="1.0" encoding="utf-8" standalone="no"?><student>
	<stu num="1111">
		<name>逗逼</name>
		<sex>男</sex>
		<cla>武当</cla>
	</stu>
	<stu num="2345">
		<name>小龙女</name>
		<sex>女</sex>
		<cla>古墓</cla>
	</stu>
	
	<stu num="6666">
		<name>第三个</name>
		<sex>第三个</sex>
		<cla>第三个</cla>
	</stu>
</student>

  

从这次的练习得出一个发现,如果直接给一个节点添加一个子节点stu,而且该子节点stu没有其他的子节点的话,那么这个stu在XML保存操作之后,会在文件中显示成<stu/>,只有当这个节点stu有子节点的时候,才会显示成<stu></stu>的两对尖括号的形式.....

0
0
分享到:
评论

相关推荐

    DOM解析XML文件例子

    在这个例子中,我们将深入探讨如何使用DOM解析XML文件,以理解和掌握XML文档的结构,并进行数据提取、修改和创建。 首先,XML(Extensible Markup Language)是一种标记语言,用于存储和传输数据,具有自描述性和...

    用dom解析xml文件

    使用DOM解析XML文件的步骤如下: 1. 加载XML文件:首先,你需要创建一个`DocumentBuilderFactory`对象,然后通过`newDocumentBuilder()`方法得到一个`DocumentBuilder`实例。接着,调用`parse()`方法,传入XML文件...

    DOM解析xml文件实例讲解

    本篇文章将深入探讨DOM解析XML文件在Android中的应用实例。 首先,DOM解析的基本思想是将整个XML文件加载到内存中,形成一个树形结构,即DOM树。这样做的优点是解析后的数据可以方便地进行任意位置的查找和修改,但...

    android Dom解析xml文件

    本篇文章将深入探讨Android中的DOM解析XML文件,包括其基本原理、实现步骤和一些实用技巧。 ### 1. DOM解析的基本概念 DOM解析是一种将XML文件转换为内存中对象模型的方法。它将XML文档视为一棵树,其中每个元素、...

    java平台中使用DOM解析xml文件

    使用DOM解析XML的基本步骤如下: 1. **导入必要的库**:在Java中,DOM解析功能主要由`javax.xml.parsers`和`org.w3c.dom`包提供。因此,首先需要在代码中导入这些库: ```java import javax.xml.parsers....

    使用dom4j 和本地dom 解析xml 文件

    在压缩包文件"复件 dom"中,可能包含了示例代码或教程,用于演示如何使用DOM4J和本地DOM解析XML文件。通过查看这些文件,你可以更深入地了解两种方法的具体实现,并在实际项目中选择合适的方式处理XML数据。 总结来...

    Android Dom解析XML

    总结来说,Android中使用DOM解析XML是一种常见且直观的方式,适合处理小规模的数据。结合ButterKnife库,可以方便地将解析结果与UI组件进行绑定,提高代码的可读性和维护性。但请注意,对于大文件,考虑使用SAX或者...

    java_dom解析xml xml java

    标题“java_dom解析xml xml java”表明了本文档的主题是关于如何使用Java中的DOM技术来解析XML文件。 #### 描述分析 描述中提到这是一个适合新手入门的内容,并给出了一个简单的XML示例。该XML文档包含了一个`...

    JAVA DOM解析XML文件过程详解

    JAVA DOM 解析 XML 文件过程详解 JAVA DOM 解析 XML 文件过程详解是指使用 JAVA 语言通过 DOM(Document Object Model)解析 XML 文件的过程。DOM 是一种应用程序接口(API),它将 XML 文档转换为一个树形结构,...

    dom4j 解析(读取) xml 节点数据

    要开始解析XML文件,首先需要导入DOM4J的相关包: ```java import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; ``` 接下来,我们将创建...

    DOM解析XML应用实例(入门经典案例)

    DOM解析XML时,会将整个XML文档加载到内存中,形成一棵由节点构成的树形结构,每个节点代表XML文档的一部分,如元素、属性、文本等。 首先,了解DOM解析的基本步骤: 1. 加载XML文档:使用Java的`...

    java dom 解析 xml 实例

    Java DOM 解析 XML 实例 Java DOM 解析 XML 实例是 Java 语言中常用的 XML 解析方法之一,...通过使用 DOM 解析 XML 文档,我们可以轻松地访问和操作 XML 文档中的元素和属性,从而实现了对 XML 文档的解析和处理。

    DOM_XML.rar_DOM_dom xml_dom xml java_dom解析xml_java解析xml

    标题中的"DOM_XML.rar"可能是一个包含DOM解析XML相关示例的压缩文件,"DOM_dom xml_dom xml java_dom解析xml_java解析xml"这部分描述了文件的主要内容,即关于DOM(Document Object Model)在XML解析中的应用,特别...

    XML解析之DOM

    1. 加载XML:使用DOM解析器如Java的`DocumentBuilderFactory`创建`DocumentBuilder`,然后用它来解析XML文件,得到`Document`对象。 2. 获取根节点:`Document`对象的`getDocumentElement()`方法返回XML文档的根...

    DOM读取XML文件

    DOM解析XML文件的基本步骤如下: 1. 引入必要的库:在Android项目中,我们需要引入`javax.xml.parsers.DocumentBuilderFactory`和`javax.xml.parsers.DocumentBuilder`库,这些库提供了解析XML的工具。 2. 创建...

    PB 解析XML (代码案例)

    7. **XML DOM操作**:如果使用XMLDOMDocument,还可以进行更复杂的DOM操作,如添加、修改或删除XML节点。例如,使用`CreateElement`, `AppendChild`等方法。 8. **保存XML**:完成数据处理后,可能需要将修改后的...

    IE下使用XML DOM解析XML文件(ASP.NET Web)

    总结,IE下的XML DOM解析涉及使用ActiveXObject创建DOM对象,加载XML文件,然后通过DOM API遍历和操作XML结构。在ASP.NET Web环境中,通常需要结合服务器端和客户端代码协同工作,确保数据的正确传输和解析。理解并...

    DOM解析XML 创建XML

    下面我们将深入探讨DOM解析XML以及如何创建XML。 DOM解析XML的过程分为以下几个步骤: 1. **加载XML文档**:首先,我们需要通过DOM解析器加载XML文档。在JavaScript中,可以使用`DOMParser`对象的`parseFromString...

    分别使用DOM和DOM4j解析XML文件

    使用DOM解析XML的基本步骤如下: 1. 创建DocumentBuilderFactory实例。 2. 使用DocumentBuilderFactory创建DocumentBuilder实例。 3. 使用DocumentBuilder的parse()方法解析XML文件,得到Document对象。 4. 通过...

    (java)DOM解析XML文件并实现通讯录

    本项目"DOM解析XML文件并实现通讯录"就是利用DOM解析器来处理XML数据,构建一个简单的通讯录应用。 首先,我们需要理解DOM解析的基本流程。当读取一个XML文件时,DOM解析器会一次性加载整个文件到内存中,然后创建...

Global site tag (gtag.js) - Google Analytics