`
bearjava
  • 浏览: 82259 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

XML解析之DOM

    博客分类:
  • Java
阅读更多
Sun公司提供了Java API for XML Parsing(JAXP)接口来使用SAX和DOM,通过JAXP,我们可以使用任何与JAXP兼容的XML解析器。

JAXP规范包含了三个包:
  (1)org.w3c.dom
  W3C推荐的用于XML标准规划文档对象模型的接口。
  (2)org.xml.sax
  用于对XML进行语法分析的事件驱动的XML简单API(SAX)
  (3)javax.xml.parsers解析器工厂工具,程序员获得并配置特殊的特殊语法分析器。

DOM是一些节点的集合,由于文档中可能包含有不同类型的信息,所以定义了几种不同类型的节点。
文档 Document
文档节点是整个文档中所有其它节点的父节点。
元素 Element
元素的子节点可以是其它元素、文本节点或两者都有。元素节点还可以只含有属性这一唯一类型的节点。
属性 Attribute
属性节点包含关于元素节点的信息,但它不是元素的子节点。
文本 Text
文本节点文本信息,或干脆是空白的文本。

public class DOMParse {
	
	public static void main(String[] args) {
		File file = null;
		Document doc = null;
		DocumentBuilderFactory dbf = null;
		DocumentBuilder db = null;
		try {
			file = new File("user.xml");
			dbf = DocumentBuilderFactory.newInstance();
			db = dbf.newDocumentBuilder();
			doc = db.parse(file);
			NodeList users = doc.getElementsByTagName("user");
			Element userElement = null;
			for(int i=0;i<users.getLength();i++ ){
				userElement = (Element) users.item(i);
				String id = userElement.getAttribute("id");			
				System.out.println("--------------------------------");
				System.out.print("id: "+id+"\t");
				String name = doc.getElementsByTagName("name").item(i).getFirstChild().getNodeValue();
				System.out.print("name: "+name+"\t");
				String age = doc.getElementsByTagName("age").item(i).getFirstChild().getNodeValue();
				System.out.print("age: "+ age+"\t");
				String sex = doc.getElementsByTagName("sex").item(i).getFirstChild().getNodeValue();
				System.out.print("sex: "+sex+"\n");			
			}
		} catch (ParserConfigurationException e) {
			e.printStackTrace();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (SAXException e) {
			e.printStackTrace();
		}
	}
}

user.xml
<?xml version="1.0" encoding="UTF-8"?>
<users>
	<user id="1">
		<name>Bob</name>
		<age>24</age>
		<sex>male</sex>
	</user>
	<user id="2">
		<name>Michael</name>
		<age>25</age>
		<sex>male</sex>
	</user>
	<user id="3">
		<name>Mary</name>
		<age>24</age>
		<sex>female</sex>
	</user>
</users>
分享到:
评论

相关推荐

    xml解析之DOM

    这篇博文“xml解析之DOM”深入探讨了DOM解析器在处理XML文档时的工作原理和使用方法。 DOM解析器的主要功能是将XML文档加载到内存中,创建一个节点树,其中每个元素、属性、文本和注释等都对应一个节点。根节点代表...

    XML解析技术DOM4J解析

    ### XML解析技术DOM4J解析 #### DOM4J解析概览 DOM4J是一种高性能、功能强大且极其易于使用的Java XML API,它最初是作为JDOM的一个智能分支发展起来的,自2000年下半年开始持续开发。DOM4J不仅在功能上超越了基本...

    Android XML解析(DOM、PULL、SAX三种方式)

    Android系统提供了三种主要的XML解析方式:DOM(Document Object Model)、PULL(Pull Parser)和SAX(Simple API for XML)。每种方法都有其独特的特性和应用场景,下面将详细介绍这三种XML解析方式。 1. DOM解析...

    JDK自带xml解析器dom+sax

    JDK(Java Development Kit)提供了两种内置的XML解析器:DOM(Document Object Model)和SAX(Simple API for XML),它们各有特点,适用于不同的场景。 1. DOM解析XML: DOM解析器将整个XML文档加载到内存中,...

    dom4j解析xml详解

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

    Dom4j解析XML文档.doc

    在本文中,我们将深入探讨如何使用DOM4J来解析和操作XML文档。 首先,要使用DOM4J,你需要下载其库文件。官方站点位于http://www.dom4j.org,你可以在这里找到最新的DOM4J包,例如dom4j-1.6.1.zip。解压缩后,你会...

    dom,dom4j,sax 解析xml文件实例

    本文将深入探讨DOM、DOM4J和SAX三种常用的XML解析方法,并结合具体的实例进行详细讲解。 首先,DOM(Document Object Model)是W3C组织推荐的一种XML解析标准。它将整个XML文档加载到内存中,构建一个树形结构,...

    易语言 xml解析 易语言 xml解析 教程 带源码

    易语言XML解析是编程领域中的一个重要主题,尤其对于使用易语言进行开发的程序员来说,理解并掌握XML(可扩展标记语言)的解析方法是至关重要的。XML作为一种结构化数据存储和交换格式,广泛应用于网络通信、配置...

    Android XML解析 SAX DOM Pull

    在Android中,有三种主要的XML解析方式:SAX(Simple API for XML)、DOM(Document Object Model)和Pull Parser。下面将详细介绍这三种解析方式,并结合person类的实例进行讲解。 1. SAX解析: SAX是一种事件驱动...

    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解析中的应用,特别...

    dom4j---xml解析jar包

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

    xmldom4j解析

    XML解析主要有两种方式:DOM(文档对象模型)和SAX(简单API for XML)。DOM解析会将整个XML文档加载到内存中形成一棵树形结构,方便访问任意节点,但内存消耗大;SAX解析则采用事件驱动,逐行读取XML,适合处理大型...

    DOM4J xml解析工具

    DOM4J作为XML解析工具,其核心功能包括: 1. **解析XML文档**:DOM4J可以使用SAX或DOM方式解析XML文件。SAX是事件驱动的解析器,适用于大文件,而DOM解析会将整个文档加载到内存,适合小文件。DOM4J的灵活性在于,...

    DOMParser解析xml

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

    Dom方式解析XML

    DOM是一种将XML文档映射成内存中的树形结构的解析方式,它允许开发者通过节点操作来访问和修改XML文档。DOM解析器会一次性加载整个XML文档到内存,因此适用于小型或中型XML文件,对于大型文件可能会消耗大量内存。 ...

    多层镶嵌xml解析.zip

    总结一下,DOM4J提供了一种灵活、高效的XML解析方式,尤其适用于处理具有复杂结构的XML文档。通过创建和操作DOM4J的`Element`对象,我们可以方便地解析XML,提取所需数据,并将其存储到自定义的实体类中。对于大型...

Global site tag (gtag.js) - Google Analytics