Android使用DOM解析xml

Android Dom解析XML Android使用Dom方式解析XML,虽然xml文件太大时不建议用dom方式解析,但是如果文件比较小,也不失为一种选择。项目中xml放在assets文件夹下,view绑定使用butterknife 立即下载

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

下面是实现代码

package com.scl.parse;

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.scl.domain.Person;

public class DOMParsePerson {
	public List<Person> getPersons(InputStream in) throws Throwable{
		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
		DocumentBuilder builder = factory.newDocumentBuilder();
		//装载成document树对象
		Document document = builder.parse(in);
		//获得根节点
		Element root =  document.getDocumentElement();
		//获得根节点的子节点
		NodeList persons = root.getElementsByTagName("person");
		//遍历所有person节点
		List<Person> personsList = new ArrayList<Person>();
		for(int i = 0;i < persons.getLength(); i ++){
			Person person = new Person();
			//获得一个person节点
			Element personElement = (Element)persons.item(i);
			//获得一个person节点的id属性,并把id的值设置给person
			person.setId(new Integer(personElement.getAttribute("id")));
			NodeList childNodes = personElement.getChildNodes();
			//循环person节点的子节点
			for(int j = 0;j < childNodes.getLength();j++){
				Node child = childNodes.item(j);
				if(child.getNodeType() == Node.ELEMENT_NODE){
					Element e = (Element)child;
					if("name".equals(child.getNodeName())){
						person.setName(child.getFirstChild().getNodeValue());
					}
					else if("age".equals(child.getNodeName())){
						person.setAge(new Short(child.getFirstChild().getNodeValue()));
					}
				}
			}
			personsList.add(person);
		}
		
		return personsList;
	}
}

下面是单元测试代码

public void testDOMParserTest() throws Throwable{
		InputStream in = this.getClass().getClassLoader().getResourceAsStream("person.xml");
		DOMParsePerson dom = new DOMParsePerson();
		List<Person> persons = dom.getPersons(in);
		for(Person p : persons){
			Log.i(TAG, p.toString());
		}
	}


hMailServer安装配置 hMailServer安装配置 使用宝塔面板上的宝塔邮件服务器2.1版本,进行安装hMailServer。 宝塔在安装hMailServer是有做了一些配置,如果是手工安装需要注意一下配置点: 1、\hMailServer\Bin 目录下增加mysql连接文件libmysql.dll,要去下载32位的。 libmysql.dll下载 链接:https://pan.baidu.com/s/1YGJXzjowlJ9n_MiqB4xiqw 提取码:wz90 2、 需要提前安装mysql,并创建hM. 阅读详情

相关推荐

slam_toolbox 简介和使用

专为移动机器人在未知环境中实时构建地图和定位设计。它适用于2D和3D环境,支持多种机器人平台和传感器配置。

weixin_74808846的博客 3305

1-3.Android 读取 XML 文件之 DOM 解析编码模板

在 Android 开发中可以使用 DOM 解析来读取 XML 文件,它提供了强大的 API

weixin_52173250的博客 1520

【电子元件篇】MOSFET场效应管作用、选型和测量指南-超简单解读

场效应管是一种电压控制型半导体器件,相比三极管具有输入阻抗高、噪声小、功耗低等优势。主要分为结型和绝缘栅型两大类,后者又可分为耗尽型和增强型MOS管。场效应管通过栅极电压控制漏极电流,具有转移特性和输出特性两大静态特性,以及快速的开关特性。其关键参数包括饱和漏源电流、夹断电压、跨导等,应用场景涵盖信号放大、恒流源、阻抗变换等领域。使用时需根据电路需求选择合适类型,如结型管适合一般放大,功率MOSFET适合高压大电流场合。检测时可用万用表电阻档初步判断好坏和放大能力。

2301_81299416的博客 2540

android 解析dom,Android中的DOM解析方式

1、DOM解析简介 DOM解析会将XML文件的内容,以对象树的形式存放在内存中。DOM解析采用了对象树这种形式存储,使它易于遍历,方便的知道上下层节点的情况,这是DOM解析与SAX解析最大的不同之处。SAX解析只能够知道自己节点的情况,无法得知其它节点的信息。2、DOM解析常用方法 (1)Document.getDocumentElement():返回文档的根元素(2)Node.g...

weixin_32148341的博客 846

COD论文笔记VSCode: General Visual Salient and Camouflaged Object Detection with 2D Prompt Learning

VSCode模型通过引入领域特定提示和任务特定提示,结合提示区分损失,成功地在单一模型中处理多个显著目标检测和伪装目标检测任务。这种方法不仅提高了模型的性能,还展示了其对未见任务的泛化能力。作者使用 Visual saliency transformer ICCV 2021 作为baseline model这张图展示了VSCode模型的整体框架,特别强调了2D提示学习方法。

985小菜鸡 1625

CMOS反相器版图设计全解析:PMOS/NMOS布局与VDD/VSS连接门道

版图设计是芯片从电路原理图迈向物理实现的必经桥梁,而CMOS反相器作为最基础的数字单元,恰好是理解这一过程的最佳切入点。在版图绘制中,PMOS与NMOS因导电类型和迁移率差异,需要在N阱与P衬底上分别规划,并呈现出不同的有源区尺寸。真正决定版图好坏的关键,往往在于VDD/VSS的完整连接——不仅要接通源漏,还要通过阱接触和衬底接触固定阱与衬底电位,防止寄生PN结正偏和闩锁效应。合理布局电源地线轨道、优化接触孔数量,能显著降低寄生电阻与电迁移风险。这些原理不仅适用于反相器,也是所有CMOS数字标准单元版图设计

weixin_29159441的博客 299

android测试:使用DOM读取xml文件的内容

本文分析了在android下dom解析xml的过程

张波的技术积累 3545

pentaho-kettle依赖拉取失败?试试这个Maven仓库配置的终极解决方案

本文详细解析了Pentaho Kettle依赖拉取失败的常见原因,并提供了三种Maven仓库配置方案,包括基础pom.xml配置、全局settings.xml设置以及企业级私有镜像仓库搭建。通过实战验证的方法和常见问题排查指南,帮助开发者彻底解决pentaho-kettle依赖问题,提升项目构建效率。

weixin_30275415的博客 202

android 节点组合模式 DOM模式

private void t() { viewGroup viewGroup=new viewGroup("layout"); viewGroup.addView(new view("image")); viewGroup.addView(new view("txt")); viewGroup viewGroup1=new ...

一航jason 373

ADS新手必看:用Filter DesignGuide快速搞定一个4GHz LC低通滤波器(附保姆级避坑指南)

本文为ADS新手提供了4GHz LC低通滤波器的完整设计流程,重点介绍了如何使用Filter DesignGuide避免参数设置陷阱、正确解读仿真结果以及解决实际电路与理论值的偏差问题。通过真实工程案例,详细讲解了工程创建、Filter DesignGuide配置、电路优化、仿真设置及实际工程中的进阶技巧,帮助工程师快速掌握LC滤波器设计。

weixin_30878501的博客 300

结构力学仿真软件:STAAD.Pro:结构抗震设计与STAAD.Pro应用_2024-08-10_11-49-29.Tex

STAAD.Pro是一款广泛应用于结构工程领域的仿真软件,由Bentley Systems开发。它能够进行结构分析和设计,支持多种结构类型,包括桥梁、建筑物、塔架等。STAAD.Pro提供了强大的建模工具,用户可以轻松创建复杂的结构模型,并进行静态和动态分析。软件还支持多种载荷组合,包括地震载荷,以及提供详细的报告和图纸输出,便于工程师进行设计和审查。STAAD.Pro是一款广泛应用于结构工程设计的软件,其界面直观,功能强大,能够进行结构分析与设计。菜单栏。

974

android之dom解析xml

好吧,我们还是来实现这张图的效果,只不过技术我们改为了dom,至于这里的图片上为什么显示的是sax解析,我只能说,哎,没办法,我想偷懒啊。嘿嘿……再看代码结构图:main.xml

梦中一夜下江南 1万+

【数据集3】高分辨率统计降尺度日值数据集NEX-GDDP的介绍与下载方法

对NEX-GDDP数据集进行介绍和下载说明

WW、forever的博客 2390

android dom解析xml文件,Android开发之DOM解析xml文件的方法

本文实例讲述了android中dom解析xml文件的方法。分享给大家供大家参考,具体如下:一、在assets文件中写xml文件李明30李向梅25二、在service中写一个dom解析的操作package com.example.service;import java.io.inputstream;import java.util.arraylist;import java.util.list;im...

weixin_39611754的博客 304

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Android XML解析学习——Dom方式

一.基础知识在《Android XML解析学习——Sax方式》和《Android XML解析学习——Sax方式(续)》中我们学习了在Android 平台上使用SAX的方式解析XML文档的方法。除了SAX的方式,还有一种常用的为DOM(Document Object Model文档对象模型)方式。DOM方式解析XML的过程为首先将所有 XML 文档读取到内存中,构造一个树结构,然后允许使用 DOM API 来操作整个树结构,包括遍历 XML 树、检索所需的数据等。Android平台使用Java SDK中的AP

ichliebephone的专栏 1万+

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

安卓使用DOM,SAX,PULL解析xml,安卓写入xml文件

Xml简介 对Xml不太了解的同学可以看一下这篇Xml的简介:http://www.cnblogs.com/SkySoot/archive/2012/08/24/2654319.html DOM解析Xml Dom解析Xml的时候,会将Xml文件的所有内容以文件树的形式存储到内存中,然后用户通过使用DOM API遍历Xml树,检索需要的内容。 但是,因为它将文件树放在了内存中,如果文件较大的

YanRu的专栏 934

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Android中DOM解析XML文件

一、在assets文件中写xml文件[html] view plaincopyprint?xmlversion="1.0"encoding="UTF-8"?> persons> personid="23"> name>李明name> age>30age> person> personid="20"> name>李向梅name> age>25age> person> persons>

Fine。晨曦~-[清晨] の第一缕阳光 5714

android用dom解析xml,【Android进阶】解析XML文件之使用DOM解析器

在前面的文章中,介绍了使用SAX解析器对XML文件进行解析,SAX解析器的优点就是占用内存小。这篇文章主要介绍使用DOM解析器对XML文件进行解析。DOM解析器的优点可能是理解起来比较的直观,当然,每个人对不同的解析方法可能有不同的喜好。但是DOM解析器有个比较大的缺点,就是占用内存比较多,在Android中的XML解析中,还是更推荐其他的解析方式。下面介绍使用DOM解析器对XML进行解析。下面是...

weixin_34684880的博客 234

Android之DOM解析XML

DOM方式解析XML是先把XML文档都读到内存中,然后再用DOM API来访问树形结构,并获取数据的。如果XML文件很大的时候,处理效率就会变的很低。 用DOM解析的具体思路是: 1.将XML文件加载进来。 2.获取文档的根节点。 3.获取文档根节点中所有子节点的列表。 4.获取子节点列表中需要读取的信息。 插曲:补充一些DOM API的知识,有助于大家理解(其实和JS里找元素节点一样

Microstrong 760

android xml dom解析,android 中 DOM解析xml

DOM方式解析文档,我们将解析后得到的数据显示在一个TextView中,代码示例:public class ActivityMain extends Activity {@Overridepublic voidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout...

weixin_34493203的博客 208

Android程序解析xml至文档中,Android开发之DOM解析xml文件的方法

本文实例讲述了Android中DOM解析xml文件的方法。分享给大家供大家参考,具体如下:一、在assets文件中写xml文件李明30李向梅25二、在service中写一个DOM解析的操作package com.example.service;import java.io.InputStream;import java.util.ArrayList;import java.util.List;im...

weixin_42333370的博客 208

android开发 解析xml文件,Android开发之DOM解析xml文件的方法

本文实例讲述了Android中DOM解析xml文件的方法。分享给大家供大家参考,具体如下:一、在assets文件中写xml文件李明30李向梅25二、在service中写一个DOM解析的操作package com.example.service;import java.io.InputStream;import java.util.ArrayList;import java.util.List;im...

weixin_28695903的博客 228

安卓XML解析的几种方式(DOM,SAX,PULL..)

在android开发中,经常用到去解析xml文件,常见的解析xml的方式有一下三种:SAX、Pull、Dom解析方式。最近做了一个android版的优快云阅读器,用到了其中的两种(sax,pull),今天对android解析xml的这三种方式进行一次 ...在android开发中,经常用到去解析xml文件,常见的解析xml的方式有一下三种:SAX、Pull、Dom解析方式。最近做了一个andro...

一只小翊的博客 1371

Android xml之dom解析

用dom解析xml文件 步骤如下: 1、

ZengTao 790

android xml dom解析,Android_xml 解析 dom 方法

import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.parsers.ParserConfigurationException;import org.w3c.dom.Document;import org.w3c。dom。Element;im...

weixin_35012177的博客 154

androidのDOM方式解析XML

androidのDOM方式解析XML 在Android中,常见的XML解析器分别为DOM解析器、SAX解析器和PULL解析器 第一种方式:DOM解析器:       DOM是基于树形结构的的节点或信息片段的集合,允许开发人员使用DOM API遍历XML树、检索所需数据。分析该结构通常需要加载整个文档和构造树形结构,然后才可以检索和更新节点信息。Android完全支持DOM 解析。利用

Steampy专栏 809
上一篇: Android使用SAX解析XML
下一篇: android使用pull方式解析xml
com360
博客等级 码龄16年 225粉丝 137原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值