`

DOM解析XML文件(读取)

阅读更多

DOM解析XML文件是一次性将目标文件中的所有节点都读入,然后再进行后续操作的方式。

一般分为以下几步:

1.定义好目标XML文件路径path

2.实例化DOM解析工厂对象,DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(),这种工厂类都不能用new的方式直接产生对象,必须用调用类的newInstance方法来产生对象。

3.用上面的工厂对象生成DOM解析器对象,DocumentBuilder builder = factory.newDocumentBuilder()。

4.用解析器对象对目标XML文件进行解析,得到Document文件对象,Document doc = builder.parse(path)。

5.处理Document文件,获得XML文件的所有信息。得到上面的doc对象也就相当于得到了树的根节点,就可以逐步对这可dom树进行遍历获得所有的节点信息,由于树的定义就是递归定义的,所以这里的遍历采用递归的思想最为简单。

代码如下:

首先是目标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>

 然后是解析的代码:

 

public class Domparse {
	//用来保存解析出来的学生对象的动态链表
	static ArrayList<Student> list = new ArrayList<Student>();
	static Student stu;
	public static void main(String[] args) throws Exception {
		String path = "D:\\xmlEX\\student2.xml";
		//实例化一个用来产生DOM解析器的工厂对象
		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
		//使用工厂得到一个DOM解析器对象
		DocumentBuilder builder = factory.newDocumentBuilder();
		//解析指定的xml文件或者数据流买得到DOM对象
		Document doc = builder.parse(path);
		//通过DOM对象获得其中的数据,递归进行遍历
		parseXML(doc);
		for(Student s:list){
			System.out.println(s);
		}
	}
	/**
	 * 递归解析XML文件
	 * @param doc 
	 */
	public static void parseXML(Node doc){
		//获得doc的所有子节点
		NodeList nodes = doc.getChildNodes();
		//遍历所有子节点
		for(int i=0;i<nodes.getLength();i++){
			Node node1 = nodes.item(i);
			//获得节点的名字
			String str = node1.getNodeName();
			//如果这个节点是一个元素节点
			if(node1 instanceof Element){
				//如果节点名字为stu则创建一个student对象存入队列,并且获得它的num属性
				if(str.equals("stu")){
					stu = new Student();
					list.add(stu);
					//获得该元素节点的num属性
					String num = ((Element)node1).getAttribute("num");
					stu.num = Integer.parseInt(num);
				}else if(str.equals("name")){
					stu.name = node1.getTextContent();
				}else if(str.equals("sex")){
					stu.sex = node1.getTextContent();
				}else if(str.equals("cla")){
					stu.cla = node1.getTextContent();
				}
			}
			parseXML(node1);
		}
	}
}

 

1
0
分享到:
评论

相关推荐

    DOM解析XML文件例子

    在实际应用中,DOM解析XML文件常用于动态网页的数据交互、XML配置文件的读取和处理等场景。但需要注意,DOM解析在处理大型XML文件时可能会消耗大量内存,因此在资源有限的环境下,可能需要考虑使用更轻量级的解析...

    DOM解析xml文件实例讲解

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

    用dom解析xml文件

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

    android Dom解析xml文件

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

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

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

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

    总的来说,理解并熟练掌握DOM解析XML是Java开发中的基础技能,无论是在简单的数据读取还是复杂的XML操作中,它都能提供强大的支持。同时,根据项目需求和性能考虑,可以选择JDOM等其他XML处理库作为替代方案。

    Android Dom解析XML

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

    DOM读取XML文件

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

    读取XML文件的四种方法

    使用DOM方法读取XML文件,需要创建DocumentBuilderFactory对象,获取DocumentBuilder对象,然后解析XML文件得到Document对象。最后,使用Document对象的getElementsByTagName方法获取指定标签的节点列表,并遍历节点...

    tinyxml2解析XML文件读取数据

    本项目“tinyxml2解析XML文件读取数据”主要关注如何使用tinyxml2库来高效地解析XML文件并提取其中的数据。以下将详细介绍tinyxml2库的关键功能和使用方法。 1. **tinyxml2库介绍** - tinyxml2提供了DOM(Document...

    java_dom解析xml xml java

    标题“java_dom解析xml xml java”表明了本文档的主题是关于如何使用Java中的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解析中的应用,特别...

    C# XML文件读取示例

    本示例将详细介绍如何在C#中读取XML文件,帮助开发者理解并掌握相关技术。 首先,让我们了解XML文件的基本结构。XML文件通常包含元素(Element)、属性(Attribute)、文本内容(Text Content)等组成部分。元素是...

    XML解析之DOM

    通过解析和操作这个XML文件,我们可以学习到如何使用DOM解析器读取、修改XML文档,并了解其在实际项目中的应用,比如配置文件的读写、数据交换等场景。 总之,DOM作为XML解析的一种方法,提供了强大且灵活的数据...

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

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

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

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

    android下解析xml文件的demo

    本教程将详细介绍如何在Android环境下解析XML文件,以"ReadXMLDemo"为例,展示具体步骤和关键知识点。 首先,XML(eXtensible Markup Language)是一种自定义标记语言,它的结构清晰,易于读写,适合于数据交换和...

    Jdom、Dom4j 、dom解析xml文件

    在"ParseXml"这个压缩包中,可能包含了示例代码,演示了如何使用JDOM、DOM4J和DOM解析XML文件。通过阅读和理解这些代码,你可以更好地掌握这些库的用法,提升处理XML文件的能力。记得实践是检验理论的最好方式,尝试...

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

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

Global site tag (gtag.js) - Google Analytics