`

xml解析--DOM

阅读更多
xml解析---DOM

工程结构图:
[img]

[/img]

效果图:
[img]

[/img]

一、stu.xml
<?xml version="1.0" encoding="utf-8"?>
<students>
	<student id="1">
		<name>tom</name>
		<age>20</age>
	</student>
	
	<student id="2">
		<name>kite</name>
		<age>21</age>
	</student>
	
	<student id="3">
		<name>rose</name>
		<age>22</age>
	</student>

</students>

布局文件放在src下,而不是com.amaker.dom包下

二、Student类:
package com.amaker.dom;

public class Student {
	
	private int id;
	private int age;
	private String name;
	/**
	 * 无参构造方法
	 */
	public Student() {
		super();
	}
	/**
	 * 带参构造方法
	 */
	public Student(int id, int age, String name) {
		super();
		this.id = id;
		this.age = age;
		this.name = name;
	}


	public int getId() {
		return id;
	}
	
	public void setId(int id) {
		this.id = id;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}

	@Override
	public String toString() {
		return "Student [age=" + age + ", id=" + id + ", name=" + name + "]";
	}
	
	
}


三、解析类 Test:
package com.amaker.dom;

import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

public class Test {

	/**
	 * zzl
	 */
	public static void main(String[] args) {
		List<Student> list = readXML();
		for (Student s : list) {
			System.out.println(s);
		}
	}

	public static List<Student> readXML() {
		InputStream in = new Test().getClass().getClassLoader()
				.getResourceAsStream("stu.xml");
		List<Student> stulist = new ArrayList<Student>();
		Student currentStudent;
		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
		try {
			DocumentBuilder builder = factory.newDocumentBuilder();
			Document dom = builder.parse(in);
			Element root = dom.getDocumentElement();
			// 查找所有的student节点
			NodeList items = root.getElementsByTagName("student");
			for (int i = 0; i < items.getLength(); i++) {
				currentStudent = new Student();
				Element stuElement = (Element) items.item(i);
				int id = Integer.parseInt(stuElement.getAttribute("id"));
				currentStudent.setId(id);

				NodeList stuNode = stuElement.getChildNodes();
				for (int j = 0; j < stuNode.getLength(); j++) {
					Node node = stuNode.item(j);
					if (node.getNodeType() == Node.ELEMENT_NODE) {
						Element eNode = (Element) node;
						String data = eNode.getFirstChild().getNodeValue();
						if (eNode.getTagName().equals("name")) {
							currentStudent.setName(data);
						}
						if (eNode.getTagName().equals("age")) {
							currentStudent.setId(Integer.parseInt(data));
						}
					}
				}
				stulist.add(currentStudent);

			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return stulist;
	}
}
  • 大小: 10 KB
  • 大小: 13.3 KB
0
0
分享到:
评论

相关推荐

    XML解析工具- TinyXML2 -源代码 - C++

    作为XML解析器,TinyXML-2具有以下特点: 1. 轻量级且易于集成:它体积小巧,代码简洁,易于集成到各种 C++ 项目中。 2. API简单易用:它提供了简单易用的 API,使得解析和操作 XML 数据变得简单快捷。开发者可以...

    XmlDom - 全能最强XML模块

    XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用在软件开发、网页制作以及数据交换等领域。...在实际项目中,根据需求选择合适的方法,如解析、创建、修改XML文档,可以极大地提高工作效率。

    XML解析-dom4j.jar-jdom.jar

    总结来说,XML解析在Java开发中扮演着重要角色,dom4j和jdom是两个常用的XML处理库,它们各有特点,提供了丰富的功能来帮助开发者处理XML文档。理解这两个库的差异和优势,以及如何在项目中正确使用它们,对于提升...

    DOMParser解析xml

    DOMParser接口提供了解析XML字符串并创建DOM文档的方法,以便于开发者可以使用DOM API来查询、修改或操作XML数据。 以下是对"DOMParser解析XML"这一主题的详细说明: 1. **DOMParser的基本使用**: 使用DOMParser...

    Xml之DOM解析--学生成绩管理系统

    在“Xml之DOM解析--学生成绩管理系统”中,我们主要探讨如何使用DOM解析器来读取、处理和更新XML文件,以实现一个简单的学生成绩管理系统的功能。首先,我们需要理解DOM解析的基本流程: 1. **加载XML文档**:使用...

    XML ----DOM操作

    1. **加载XML文档**:首先,我们需要创建一个DOM解析器,如Java中的`DocumentBuilderFactory`和`DocumentBuilder`,它们用于读取XML文件并构建DOM树。 2. **获取根节点**:解析后的XML文档会被转换为一个`Document`...

    dom4j---xml解析jar包

    **DOM4J——XML解析库详解** XML(eXtensible Markup Language)作为一种标记语言,广泛应用于数据交换、配置文件和文档存储等领域。在Java环境中,解析XML文档时,我们通常会遇到各种库,其中DOM4J是一个非常流行...

    XML四种解析方式------DOM SAX JDOM DOM4J

    JDOM是Java特有的XML解析库,它提供了更符合Java习惯的API来操作XML。与DOM类似,JDOM也创建一个文档对象模型,但它的设计更简洁,易于使用。相比DOM,JDOM的性能稍好,因为它减少了对象创建和内存使用,但对大型XML...

    XML-DOM-Java

    在这个“XML-DOM-Java-Spec.rar”压缩包中,我们很可能是找到了一个关于如何在Java中使用DOM处理XML的演示文稿,名为“XML-DOM-Java-Spec.ppt”。 以下是关于XML DOM和Java处理XML的一些关键知识点: 1. **DOM解析...

    Android解析xml(2)---DOM解析

    DOM解析器是XML解析的一种方法,它将整个XML文档加载到内存中的一个对象模型,这个模型称为DOM树。开发者可以遍历这个树来访问或修改XML文件的任何部分。因为DOM解析器将整个文件加载到内存,所以对于大型XML文件,...

    dom-sax解析XML文件-java

    XML文件的解析主要分为两种方式:DOM(Document Object Model)和SAX(Simple API for XML)。本文将详细探讨这两种解析方式,并通过实例对比它们的特点和使用场景。 **DOM解析** DOM解析器将整个XML文件加载到内存...

    xml--DOM技术

    在实际应用中,DOM技术常用于动态网页和Web应用程序,例如AJAX(Asynchronous JavaScript and XML)中,XML数据被请求并解析成DOM树,然后用JavaScript更新页面内容。此外,XMLHttpRequest对象也经常与DOM结合,用于...

    xml解析器-----dom4j.jar

    DOM4j类包,已经打包,放在工程项目的BIN下

    vtd-xml vtd-xml vtd-xml

    DOM解析器会将整个XML树加载到内存中,占用大量资源;SAX是事件驱动的,适合流式处理,但不支持随机访问。而VTD-XML则兼顾了随机访问和资源效率。 6. **应用场景**:VTD-XML适用于大数据分析、XML文档的索引和搜索...

    dom4j解析xml详解

    DOM4J是一个由dom4j.org开发的开源XML解析包,专为Java平台设计,它不仅支持DOM、SAX和JAXP标准,还巧妙地融入了Java集合框架,使其成为Java开发者在处理XML数据时的强大工具。DOM4J的最大亮点在于其简洁易用的API...

    解析XML--老师(解析,修改,删除,导出)

    ### XML解析 1. **基础概念**:XML文件由一系列元素组成,每个元素都有开始标签和结束标签,如`内容&lt;/element&gt;`。元素可以嵌套,属性可以附加在开始标签内提供额外信息。 2. **解析方式**: - **DOM解析**:将整个...

    xml-apis-2.0.2.jar ecside 依赖包之一

    这个特定的版本可能包含了XML解析器如Apache Xerces或IBM XML4J,以及相关的接口和类,比如DOM(Document Object Model)、SAX(Simple API for XML)和StAX(Streaming API for XML)等解析方式。 DOM是XML数据的...

    DOM4J jar包 xml解析 所有的dom4j-1.6.1 dom4j-2.0.2 dom4j-2.1.1包 导入直接使用

    6. **StAX(Streaming API for XML)支持**:DOM4J也支持StAX解析器,这种解析方式结合了SAX的高效和DOM的易用性,可以在处理大型XML文件时节省内存。 7. **与JAXB集成**:DOM4J可以与Java Architecture for XML ...

    xml-DOM教学PPT

    在解析XML文档时,DOM一次性加载整个文档到内存中,构建出一个树形结构,方便开发者通过API直接查找、添加、删除和修改节点。相比于SAX解析器,DOM在解析时消耗更多资源,但提供了更直观和方便的编程模型。 DOM的...

    XML-Parser-2.41.tar.gz

    XML解析器有多种类型,如DOM(Document Object Model)解析器,它将整个XML文档加载到内存中形成一棵树状结构,便于遍历和修改;SAX(Simple API for XML)解析器则采用事件驱动的方式,逐个处理XML元素,节省内存但...

Global site tag (gtag.js) - Google Analytics