- 浏览: 148093 次
- 性别:
- 来自: 武汉
文章分类
最新评论
-
flyingcatjj:
很适合我这种刚接触的
myeclipse xfire 开发webservice实例 -
tangzlboy:
非常好,非常详细,非常中用。
linux入门 -
yzz9i:
楼主说的很是详细。
myeclipse xfire 开发webservice实例 -
zqx888191:
很再理阿!
老程序员的教诲 -
simplecat123:
...
SQLite数据读取
除了可以使用 SAX解析XML文件,大家也可以使用熟悉的DOM来解析XML文件。 DOM解析XML文件时,会将XML文件的所有内容读取到内存中,然后允许您使用DOM API遍历XML树、检索所需的数据。使用DOM操作XML的代码看起来比较直观,并且,在某些方面比基于SAX的实现更加简单。但是,因为DOM需要将XML文件的所有内容读取到内存中,所以内存的消耗比较大,特别对于运行Android的移动设备来说,因为设备的资源比较宝贵,所以建议还是采用SAX来解析XML文件,当然,如果XML文件的内容比较小采用DOM是可行的。
关键代码一
package com.leequer.Service;
import java.io.InputStream;
import java.util.Iterator;
import java.util.List;
import com.leequer.Doem.Person;
import android.test.AndroidTestCase;
import android.util.Log;
public class Test extends AndroidTestCase {
private String PERSONSTRING = "ObjectPerson";
public void testReadXml() throws Exception
{//类装载器
InputStream inputStream = Test.class.getClassLoader().getResourceAsStream("NewFile.xml");
List <Person> personsList = ReadXmlByDomService.ReadXmlByDom(inputStream);
for (Iterator iterator = personsList.iterator(); iterator.hasNext();) {
Person person = (Person) iterator.next();
Log.i(PERSONSTRING, person.toString());
}
}
}
关键代码二
package com.leequer.Service;
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;
import com.leequer.Doem.Person;
/**
* 使用dom解析xml
* 2010-04-26
* @author leequer
*
*/
public class ReadXmlByDomService {
public static List<Person> ReadXmlByDom (InputStream inputStream)throws Exception
{
List <Person> personList = new ArrayList<Person>();
//创建文档读取工厂
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
//创建读去对象
DocumentBuilder builder = documentBuilderFactory.newDocumentBuilder();
//对以输入流方式传进来的信息进行解析 整个xml文档就以树的形式存在document中
Document document = builder.parse(inputStream);
//得到根元素
Element root = document.getDocumentElement();
//得到person元素节点 这个对象中就存在persons下面的所以节点 就是很多的person节点
NodeList nodes = root.getElementsByTagName("person");
for(int i= 0 ;i<nodes.getLength();i++)
{
/**
* persons下面的节点是元素节点 person 用element就行了
*/
Element element = (Element)nodes.item(i);
Person person = new Person();
person.setId(element.getAttribute("id"));//属性
/**
* perons节点中包含的有元素节点name age 和文本节点 23 李明 所以我们迭代的时候要用note
*/
NodeList childnotes = element.getChildNodes();//得到子节点的列表
for (int j = 0 ; j < childnotes.getLength();j++)
{
Node node = (Node)childnotes.item(j);
/**
* node中有元素 也有文本节点 还包括回车和空格的文本节点 但是我们不关心回车和空格
*/
if(node.getNodeType()==Node.ELEMENT_NODE)
{
//如果是element节点 把它转换成element
Element childElement = (Element)node;
if("name".equals(childElement.getNodeName()))
{
person.setName(childElement.getFirstChild().getNodeValue());
}
if("age".equals(childElement.getNodeName()))
{
person.setAge(childElement.getFirstChild().getNodeValue());
}
}
}
personList.add(person);
}
return personList;
}
}
发表评论
-
Bitmap Drawable byte[] 三者之间的转换以及把数组存入数据库及提取数据重新组合
2012-03-06 11:21 788Bitmap Drawable byte[] 三者之间的转换以 ... -
Android Service生命周期及用法
2011-03-28 13:03 633写道 大家好,上一节 ... -
Android Activity生命周期
2011-03-28 11:41 799大家好,今天给大家详解一下Android中Activity的生 ... -
Drawable使用入门
2011-03-25 16:03 1136一个让人赏心悦目的界面对软件来说非常重要,因此图形图像资源也显 ... -
Android 中的几个常用控件
2011-03-24 14:43 1023写道 1、RadioButton RadioButton ... -
android命令
2011-03-03 14:44 956写道 大家好,今天我 ... -
android学习的好网址
2011-02-22 10:10 936http://www.droidnova.com/and ... -
linux下操作android模拟器命令
2011-02-14 17:14 2142写道 1:列出模拟器类型 android list ... -
Activity生命周期
2011-02-08 19:59 880大家好,今天给大家详解一下Android中Activit ... -
Intent对象的简单使用
2011-02-08 00:38 617如果要转换的页面不只是背景,颜色或文字内容的不同,而是A ... -
setContentView的应用
2011-02-08 00:34 1518手机页面的转换set ... -
多个Activity之间的通信与数据传递的Bundle对象的使用
2011-02-08 00:18 1174在Activity 中调用另一个Activity ,但若 ... -
多个Activity之间的通信
2011-02-07 22:38 2061第一步:新建一个继承Activity的类,如:NewActiv ... -
共享数据功能使用-ContentProvider
2011-01-26 11:03 1209package it.date; import it ... -
外部应用访问
2011-01-11 16:29 1964使用context中的文件输出流它有四种模式: * ... -
使用SharedPreferences进行数据存储-
2011-01-11 11:07 1000很多时候我们开发的软件需要向用户提供软件参数设置功能,例如我们 ... -
pull读取xml--android
2011-01-09 22:54 1943pull解析xml文件,和sax和dom一样 都可以脱离and ... -
数据保存到sd卡上
2011-01-05 17:22 9641 关键代码 package cn.lee.data; ... -
android读取功能
2011-01-05 16:03 9511 设计界面 <?xml version=" ... -
android的日志输出和单元测试
2010-12-31 17:52 1546日志输出 代替Syste ...
相关推荐
DOM解析器将整个XML文件加载到内存中,形成一个树形结构,允许开发者通过节点操作来访问和修改XML文档。这种方式的优点在于方便、直观,但缺点是占用内存较大,不适用于处理大型XML文件。 首先,我们需要了解XML的...
DOM解析方式允许开发者一次性加载整个XML文档到内存中,形成一个树形结构,便于遍历和操作。尽管对于大型XML文件,DOM解析可能因消耗大量内存而效率低下,但在处理小型XML文件时,DOM方法具有简洁和方便的优点。 ...
DOM解析器将整个XML文档加载到内存中,形成一个树形结构,允许开发者通过节点操作来访问和修改XML内容。本篇文章将深入探讨Android中的DOM解析XML文件,包括其基本原理、实现步骤和一些实用技巧。 ### 1. DOM解析的...
在Android中,可以通过`FileInputStream`或`AssetManager`从文件系统或资源中读取XML文件。 5. **解析XML** `parse()`方法返回一个`Document`对象,它是整个XML文档的根节点。可以使用`Document`对象提供的方法如`...
总的来说,dom4j-1.6.1为Java Android开发者提供了一套全面的工具,便于处理XML文档,无论是在应用配置、数据存储还是与其他系统交换数据时,都是一个值得信赖的选择。通过熟练掌握dom4j,开发者可以更高效地管理和...
DOM是一种标准,允许程序以树形结构访问和操作XML文档的全部内容。它将整个XML文件加载到内存中,形成一个完整的节点树,从而可以方便地遍历和修改XML文档的任何部分。在Android中,我们通常使用`javax.xml.parsers....
相比于DOM,DOM4J更适合处理大型XML文档,因为它提供了一些高级功能,如XPath查询。在Android中引入DOM4J库后,可以像这样解析XML: ```java SAXReader reader = new SAXReader(); Document document = reader.read...
DOM4J作为一个解析器,提供了对XML文档的全面支持,包括读取、写入、修改以及查询XML内容。它不仅支持DOM(Document Object Model)接口,还提供了SAX(Simple API for XML)和StAX(Streaming API for XML)的接口...
DOM是一种将XML文档映射成内存中的树形结构的解析方式,它允许开发者通过节点操作来访问和修改XML文档。DOM解析器会一次性加载整个XML文档到内存,因此适用于小型或中型XML文件,对于大型文件可能会消耗大量内存。 ...
最后,使用创建的解析器和处理器读取XML文件: ```java InputStream is = context.getResources().openRawResource(R.raw.xmlFile); // 获取XML文件输入流 saxParser.parse(is, new MyHandler()); is.close(); ``` ...
- **org.w3c.dom**: W3C提供的DOM接口,用于读取XML文档。 - **org.xml.sax**: 提供核心SAX API。 - **org.xmlpull.v1**: 用于XML拉取解析,适用于数据写入XML文档。 此外,`android.util.Xml`提供了一个简单的封装...
DOM4J 是一个强大的 Java XML API,它提供了全面的 XML 解析、操作以及文档构建功能。这个包“dom4j-1.6.1”是 DOM4J 的一个特定版本,包含了该库的所有组件和资源,适用于 Android 平台的 XML 解析需求。在你的博客...
DOM解析器会加载整个XML文档到内存中,创建一个树形结构的文档对象模型。这意味着它可以提供对XML文档的随机访问,允许开发者轻松地遍历和修改XML节点。然而,DOM解析器对于大文件来说可能不太适用,因为它需要消耗...
2. **DOM解析原理**:DOM解析器读取整个XML文档并构建一个内存中的节点树。每个节点代表XML文档的一部分,如元素、属性、文本等。开发者可以通过遍历这棵树来访问或修改XML数据。 3. **Android中的DOM解析**:在...
在Android开发中,DOM(Document Object Model)解析是处理XML文档的一种常见方法,它提供了一种结构化的表示XML文档的方式,并允许开发者通过编程接口与XML数据进行交互。本篇文章将深入探讨DOM解析XML文件在...
DOM(Document Object Model)是一种处理XML的标准方式,它将整个XML文档加载到内存中并提供一系列方法来访问和修改文档中的元素。本文将详细介绍如何在Android应用程序中读取DOM格式的XML文件。 #### 二、关键技术...
Android SDK提供了`org.w3c.dom`和`javax.xml.parsers`两个包,用于处理XML文档。其中,`DocumentBuilderFactory`用于创建`DocumentBuilder`对象,`DocumentBuilder`则负责解析XML文件并构建`Document`对象。通过`...
DOM(Document Object Model)是一种解析XML的标准方法,它将整个XML文档加载到内存中形成一个树形结构,允许开发者通过节点遍历来访问和操作XML内容。本文将深入探讨如何在Android应用中使用DOM解析XML文件。 首先...
DOM解析器将整个XML文件加载到内存中,形成一个树形结构,可以方便地遍历和修改XML文档的任何部分。然而,由于它需要一次性加载整个文件,对于大文件来说可能会消耗大量内存。 在"ReadXMLDemo"中,使用DOM解析的...