android中数据存储及对xml的解析.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
android中数据存储及对xml的解析这几天恶补了一下XML解析,还是不够透彻呀,还是先打个钉吧。。。 XML作为一种业界公认的数据交换格式,在各个平台与语言之上,都有广泛使用和实现。 其标准型,可靠性,安全性......毋庸置疑。在android平台上,我们要想实现数据存储和数据交换,经常会使用到xml数据格式和xml文件。 小提示:android中存储数据一般有如下几种:SharedPreferences(参数化),XML文件,sqllite数据库,网络,ContentProvider(内容提供者)等。 在android中,操作xml文件,一般有几种方式:SAX操作,Pull操作,DOM操作等。其中DOM的方式,可能是大家最熟悉的,也是符合W3C标准的。 1) 在java平台中,有诸如DOM4J这样优秀的开源包,极大程度的方便大家使用DOM标准来操作XML文件。在javascript中,不同的浏览器解析引擎,对DOM的解析和操作也略有差异(不过这不是本章介绍的重点)。而DOM的方式,也有其缺点。通常一次性加载xml文件,再使用DOM的 api去进行解析,这样很大程度的消耗内存,对性能会有一定影响。而我们的android手机,虽然配置在不断的升级,但是内存方面,暂时还无法与传统的PC去媲美。所以,在android开发中,个人不太推荐使用DOM的方式来解析和操作XML。 [java] view plaincopy 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 org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import cn.itcast.model.Person; public class DomPersonService { public ListgetPersons(InputStream stream) throws Throwable { Listlist =new ArrayList(); DocumentBuilderFactory factory =DocumentBuilderFactory.newInstance(); DocumentBuilder builder =factory.newDocumentBuilder(); Document dom = builder.parse(stream);//解析完成,并以dom树的方式存放在内存中。比较消耗性能 //开始使用dom的api去解析 Element root = dom.getDocumentElement();//根元素 NodeList personNodes = root.getElementsByTagName_r(person);//返回所有的person元素节点 //开始遍历啦 for(int i=0;i p { Person person =new Person(); Element personElement =(Element)personNodes.item(i); person.setId(new Integer( personElement.getAttribute(id)));//将person元素节点的属性节点id的值,赋给person对象 NodeList personChildrenNodes =personElement.getChildNodes();//获取person节点的所有子节点 //遍历所有子节点 for(int j=0;j p { //判断子节点是否是元素节点(如果是文本节点,可能是空白文本,不处理) if(personChildrenNodes.item(j).getNodeType()==Node.ELEMENT_NODE) { //子节点--元素节点 Element childNode =(Element)personChildrenNodes.item(j); if(name.equals(childNode.getNodeName())) { //如果子节点的名称是“name”.将子元素节点的第一个子节点的值赋给person对象 person.setName(childNode

文档评论(0)

peain + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档