`

android解析XML文件的三方法之DOM

 
阅读更多

    DOM解析XML文件时,会将XML文件的所有内容以文档树方式存放在内存中,然后允许您使用DOM API遍历XML树、检索所需的数据。使用DOM操作XML的代码看起来是比较直观的,并且在某些方面比基于SAX的实现更加简单。但是,因为DOM需要将XML文件的所有内容以文档树方式存放在内存中,所以内存的消耗比较大,特别对于运行Android的移动设备来说,因为设备的资源比较宝贵,所以建议还是采用SAX来解析XML文件,当然,如果XML文件的内容比较小采用DOM也是可行的。

1:person.xml

<?xml version="1.0" encoding="UTF-8"?> 
<persons> 
<person id="23"> 
<name>李明</name> 
<age>30</age> 
</person> 
<person id="20"> 
<name>李向梅</name> 
<age>25</age> 
</person> 
</persons> 

 

2:DOMPersonService

package cn.itcast.service;

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

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

import cn.itcast.domain.Person;
/**
 * 采用DOM解析XML内容
 */
public class DOMPersonService {

	public static List<Person> getPersons(InputStream inStream) throws Throwable{
		List<Person> persons = new ArrayList<Person>();
		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
		DocumentBuilder builder = factory.newDocumentBuilder();
		Document documnet = builder.parse(inStream);
		Element root = documnet.getDocumentElement();
		NodeList personNodes = root.getElementsByTagName("person");
		for(int i=0 ; i < personNodes.getLength(); i++){
			Person person = new Person();
			Element personElement = (Element)personNodes.item(i);
			person.setId(new Integer(personElement.getAttribute("id")));
			NodeList personChilds = personElement.getChildNodes();
			for(int y=0 ; y < personChilds.getLength(); y++){
				if(personChilds.item(y).getNodeType()==Node.ELEMENT_NODE){//判断当前节点是否是元素类型节点
					Element childElement = (Element)personChilds.item(y);
					if("name".equals(childElement.getNodeName())){
						person.setName(childElement.getFirstChild().getNodeValue());
					}else if("age".equals(childElement.getNodeName())){
						person.setAge(new Short(childElement.getFirstChild().getNodeValue()));
					}
				}
			}
			persons.add(person);
		}
		return persons;
	}
}

 

3:测试类

	public void testDomGetPersons() throws Throwable{
		InputStream inStream = getClass().getClassLoader().getResourceAsStream("person.xml");
		List<Person> persons = DOMPersonService.getPersons(inStream);
		for(Person person : persons){
			Log.i(TAG, person.toString());
		}
	}

 

 可参考:http://www.cnblogs.com/zhangdongzi/archive/2011/04/14/2016434.html

分享到:
评论

相关推荐

    android Dom解析xml文件

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

    Android Dom解析XML

    本文将深入探讨如何使用DOM(Document Object Model)解析XML在Android应用中的实践。DOM解析方式允许开发者一次性加载整个XML文档到内存中,形成一个树形结构,便于遍历和操作。尽管对于大型XML文件,DOM解析可能因...

    android 解析XML文件 生成XML文件

    三、Pull解析器解析XML文件 Android提供了XMLPullParser,这是一种基于事件的轻量级解析器,适合移动设备资源有限的环境。使用Pull解析器的主要步骤: 1. 创建XMLPullParser实例,通常使用XMLPullParserFactory和...

    android下解析xml文件的demo

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

    Android 解析xml文件

    本篇将深入探讨Android中解析XML文件的方法,以及如何通过示例代码`ReadXmlConfigFile`来实现这一过程。 ### XML解析器类型 Android提供了多种解析XML的方式,主要包括以下几种: 1. **DOM解析器**:Document ...

    Android 解析 XML 三种方法

    总结,Android解析XML的三种方法——SAX、DOM和PULL,各有适用场景。理解它们的工作原理和优缺点,可以帮助我们更好地选择和运用XML解析技术,提高应用的效率和用户体验。在实践中不断学习和探索,才能真正掌握这些...

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

    例如,你可以使用`DocumentBuilderFactory`来创建`DocumentBuilder`,然后用`parse()`方法解析XML文件。在提供的`DomXmlOperate`示例中,可能包含了如何使用DOM解析XML并绑定到View(如使用ButterKnife库)的代码。 ...

    android 三种方式解析XML(DOM,Pull,Sax) 带文件编码识别

    本篇文章将深入探讨三种在Android中解析XML的方法:DOM(文档对象模型)、Pull(拉取解析器)和SAX(简单API for XML),并且会特别强调如何识别文件编码。 首先,DOM解析是将整个XML文件加载到内存中形成一个树形...

    Android解析XML文件的三方法

    本文将详细介绍Android中三种解析XML文件的方法:SAX解析、DOM解析以及Android内置的Pull解析。 1. **SAX解析(Simple API for XML)**: - SAX解析是一种基于事件驱动的解析方式,它不会一次性加载整个XML文档到...

    老罗Android视频开发教程 android解析xml文件代码

    老罗的Android视频教程深入浅出地讲解了如何在Android平台上解析XML文件,这对于开发者来说是非常重要的技能。以下是对这个主题的详细解释。 1. **XML基本概念** XML是一种自描述的语言,其结构清晰,易于机器和...

    android上使用DOM解析XML

    总结来说,Android上使用DOM解析XML是一种常见且强大的方法,适用于处理小到中等大小的XML文件。通过理解DOM模型和相应的API,开发者可以高效地解析XML数据,为应用程序提供丰富的信息处理能力。然而,对于大型XML...

    解析xml的三种方式DOM/SAX/PULL

    本文将深入探讨解析XML的三种主要方法:DOM(Document Object Model)、SAX(Simple API for XML)和PULL解析。 1. DOM解析: DOM是W3C推荐的标准解析方式,它将整个XML文档加载到内存中,构建一个树形结构,称为...

    Android应用源码之28.使用DOM和pull解析XML.zip

    在Android应用开发中,处理XML数据是常见的任务之一,无论是从网络获取数据还是读取本地资源,解析XML都是必不可少的步骤。本资料包主要涵盖了两种常见的XML解析方式:DOM(Document Object Model)和Pull解析器。...

    android解析xml的4种方法

    本文将深入探讨在Android环境中解析XML的四种主要方法:DOM、SAX、Pull Parser以及XMLPullParser。 1. DOM解析器: DOM(Document Object Model)是一种将XML文档加载到内存中形成一棵树形结构的方法。它一次性读取...

    Dom方式解析XML

    在Android Studio中,我们经常使用DOM解析XML资源文件,如布局文件。例如,读取XML配置文件以获取应用程序设置: - 创建XML配置文件(如`config.xml`)放在`res/raw`目录下。 - 使用上述DOM解析方法读取并处理...

    Android使用DOM方式解析XML

    本篇文章将深入探讨如何使用DOM(文档对象模型)解析XML文件,并将其内容显示在应用程序的用户界面上。 首先,理解DOM解析的基本概念至关重要。DOM是一种标准,允许程序以树形结构访问和操作XML文档的全部内容。它...

    Android 解析XML的三种方式Demo完整版

    本篇文章将深入探讨Android中解析XML的三种主要方法,并通过一个名为"XMLParserDemo"的示例项目来详细阐述每种方法的实现步骤。 ### 1. DOM解析器 DOM(文档对象模型)解析器将整个XML文档加载到内存中,形成一个...

    android 解析XML文件代码

    本教程将深入讲解如何在Android中解析XML文件,帮助开发者更好地理解和运用这一核心技术。 首先,Android提供了两种主要的XML解析方式:DOM(Document Object Model)解析和SAX(Simple API for XML)解析。DOM解析...

    DOM解析xml文件实例讲解

    总的来说,DOM解析XML在Android中是一种常用且灵活的方法,尤其适合处理小型XML文件。但要注意根据项目需求选择合适的解析策略,确保性能和资源的合理利用。在实际编码过程中,结合具体的业务场景和XML文件大小,...

    Android 解析XML 文件的四种方法总结

    本文主要介绍了四种在Java和Android中解析XML文件的方法:DOM、SAX、JDOM和DOM4J。 1. DOM(Document Object Model)解析: DOM是W3C推荐的标准,它将XML文档解析为一个节点树,允许开发者在整个树结构中查找和操作...

Global site tag (gtag.js) - Google Analytics