`
啸笑天
  • 浏览: 3454205 次
  • 性别: Icon_minigender_1
  • 来自: China
社区版块
存档分类
最新评论

使用DOM读取XML文件

阅读更多

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

使用SAX读取XML文件文章中的com.jbridge.xml.service包下添加类:

 

package com.jbridge.xml.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.jbridge.xml.domain.Person;

public class DOMPersonService {

public static List<Person> getPersons(InputStream inStream) throws Exception{

List<Person> persons = new ArrayList<Person>();

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

DocumentBuilder builder = factory.newDocumentBuilder();

Document document = builder.parse(inStream);

Element root = document.getDocumentElement();

NodeList personNodes = root.getElementsByTagName("person");//查找所有person节点

for(int i = 0 ; i < personNodes.getLength() ; i++){

Person person = new Person();

//得到第一个person节点

Element personNode = (Element)personNodes.item(i);

//获取person节点的id属性值

int id = new Integer(personNode.getAttribute("id"));

person.setId(id);

//获取person节点下的所有子节点(标签之间的空白节点和name/age元素)

NodeList childNodes = personNode.getChildNodes();

for(int y = 0 ; y < childNodes.getLength() ; y++){

Node childNode = childNodes.item(y);

//判断是否为元素类型

if(childNode.getNodeType()==Node.ELEMENT_NODE){

//判断是否name元素

if("name".equals(childNode.getNodeName())){

String name = childNode.getFirstChild().getNodeValue();

person.setName(name);

//获取name元素下Text节点,然后从Text节点获取数据

}else if("age".equals(childNode.getNodeName())){

String age = childNode.getFirstChild().getNodeValue();

person.setAge(new Short(age));

}

}

}

persons.add(person);

}

return persons;

}

}



使用SAX读取XML文件文章中的TestService类下添加方法:
public void testGetDOMPersons() throws Throwable{
InputStream inStream = this.getClass().getClassLoader().getResourceAsStream("person.xml");
DOMPersonService domPersonService=new DOMPersonService();
List<Person> persons = domPersonService.getDOMPersons(inStream);
for(Person person : persons){
Log.i(TAG, person.toString());
}
}

 

  • xml.zip (58.3 KB)
  • 下载次数: 6
分享到:
评论

相关推荐

    使用DOM解析XML文档

    文档对象模型 节点和节点树 使用DOM加载XML文档 使用DOM访问、创建和修改节点

    DOM读取XML文件

    5. 遍历和操作节点:通过DOM树的API,如`getElementsByTagName()`, `getChildNodes()`, `getTextContent()`等,遍历和操作XML文档中的各个节点。 例如,在DomProject这个示例项目中,可能包含以下代码片段: ```...

    【Qt】DOM读取XML文档.rar

    本教程主要关注使用Qt的DOM(Document Object Model)模型来读取XML文档。 DOM是一种树型结构,它将XML文档视为一系列可编程的对象。在Qt中,我们使用`QDomDocument`类来表示整个XML文档,而`QDomElement`、`...

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

    5. **遍历和操作XML结构**:现在,你可以使用DOM API遍历XML文档的节点,获取或修改元素、属性和文本。 ```java NodeList nodeList = doc.getElementsByTagName("tag_name"); for (int i = 0; i (); i++) { ...

    读取XML文件的四种方法

    使用DOM4J方法读取XML文件,需要创建SAXReader对象,读取XML文件得到Document对象,然后使用Element对象的elementIterator方法获取指定标签的迭代器,遍历迭代器进行数据提取。 优点:DOM4J方法提供了高效的XML解析...

    DOM操作XML文档

    学习XML语言很重要的一章节,其中的第八章节,掌握如何用DOM操作XML文档

    java dom 解析 xml 实例

    Java DOM 解析 XML 实例 Java DOM 解析 XML 实例是 Java 语言中常用的 XML 解析方法之一,...通过使用 DOM 解析 XML 文档,我们可以轻松地访问和操作 XML 文档中的元素和属性,从而实现了对 XML 文档的解析和处理。

    dom读取xml与写入xml

    读取XML文件使用DOM时,通常分为以下几个步骤: 1. 加载XML文件:使用特定的API(如JavaScript中的`XMLHttpRequest`或Java的`DocumentBuilderFactory`)加载XML文件到内存中。 2. 解析XML:调用解析器(如Java的`...

    DOM解析XML文件例子

    在这个例子中,我们将深入探讨如何使用DOM解析XML文件,以理解和掌握XML文档的结构,并进行数据提取、修改和创建。 首先,XML(Extensible Markup Language)是一种标记语言,用于存储和传输数据,具有自描述性和...

    android上使用DOM解析XML

    DOM(Document Object Model)是处理XML的一种方法,它将XML文档视为一个树形结构,允许开发者通过节点操作来读取、修改或创建XML内容。在Android 4.0及以上版本,我们可以使用内置的Java XML DOM API来实现XML解析...

    Java DOM 生成XML

    Java DOM(Document Object Model)是一种基于树形结构的XML文档处理模型,它允许程序员通过对象接口来访问和操作XML文档的各个部分。DOM为XML文档提供了一种内存中的表示方式,使得开发人员可以方便地创建、修改和...

    用dom解析xml文件

    在处理XML文件时,DOM解析器会将整个XML文档加载到内存中,形成一个完整的节点树,这样我们就可以通过这个树来查找、修改或遍历XML数据。 XML(eXtensible Markup Language)是一种标记语言,常用于存储和传输结构...

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

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

    DOM解析xml文件实例讲解

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

    用DOM读写XML文件

    在读取XML文件后,我们可以使用DOM API遍历文档结构。例如,如果我们有一个如下的XML结构: ```xml &lt;title&gt;ITEYE博客 &lt;url&gt;https://iteye.com&lt;/url&gt; ``` 我们可以这样获取`&lt;link&gt;`元素: ```java // 获取...

    利用DOM读写XML

    总结,DOM提供了一种强大且灵活的方式来读取和操作XML文档。通过创建DOMDocument对象,我们可以构建XML文档,通过遍历和查询DOM树,我们可以读取并修改XML文档的内容。在处理复杂的数据结构和需要动态更新XML时,DOM...

    DOM_XML.rar_DOM_dom xml_dom xml java_dom解析xml_java解析xml

    DOM解析器读取整个XML文档到内存中,构建一棵由节点组成的树,这些节点代表了XML文档的所有元素、属性、文本和其他结构。 在Java中,`org.w3c.dom`包提供了DOM解析XML的基础接口和类。以下是DOM解析XML的基本步骤:...

    DOM解析XML文档

    1. 加载XML文档:首先,解析器读取XML文件并将其转化为内存中的DOM树。这个过程包括验证XML的语法正确性、处理命名空间等。 2. 构建DOM树:解析器按照XML文档的结构创建一个节点树,每个元素、属性、文本、注释等都...

Global site tag (gtag.js) - Google Analytics