Xml主要有三种解析方式分别为dom、sax、还有xmlpull,先来说下各自的优缺点。

1、dom解析的特点是将整个xml文档以树形结构放入到内存中,是官方推荐标准,优点是在内存中可以增删改查,缺点是当文件过大是可能会内存溢出。

2、sax解析是一行一行的进行解析,是程序员社区开发出来的,优点是不会内存溢出,缺点是不能修改里面的内容

3、xmlpull的解析类似sax解析,是android内置的解析器。

dom解析,注释很详细,直接上代码,实际开发中用这种方式的不多

 private void domTest()  {try {//获取dom解析器的工厂DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();//通过工厂获取一个dom解析器的实例DocumentBuilder builder = factory.newDocumentBuilder();//解析xml文件,参数可以是串,可以是文件,也可以是流Document dom = builder.parse("");//获取book元素的集合NodeList list = dom.getElementsByTagName("book");for(int i=0;i<list.getLength();i++){//得到一个book元素Node node = list.item(i);//获取到book元素下其他元素的集合NodeList childNodes = node.getChildNodes();for(int j=0;j<childNodes.getLength();j++){//得到一个其他元素Node node1 = childNodes.item(j);//获取元素名String nodeName = node1.getNodeName();//获取元素里的内容String textContent = node1.getTextContent();}}} catch (Exception e) {e.printStackTrace();}}

sax解析

private void saxTest() {try {//获取sax解析器的工厂SAXParserFactory factory = SAXParserFactory.newInstance();//通过工厂获取一个sax解析器的实例SAXParser parser = factory.newSAXParser();//解析xml文件,参数1为xml文件名,参数2为parser.parse("",new HdBase());} catch (ParserConfigurationException e) {e.printStackTrace();} catch (Exception e) {e.printStackTrace();}}public class HdBase extends DefaultHandler{@Overridepublic void startDocument() throws SAXException {super.startDocument();}@Overridepublic void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {super.startElement(uri, localName, qName, attributes);}@Overridepublic void characters(char[] ch, int start, int length) throws SAXException {super.characters(ch, start, length);}@Overridepublic void endElement(String uri, String localName, String qName) throws SAXException {super.endElement(uri, localName, qName);}@Overridepublic void endDocument() throws SAXException {super.endDocument();}}

xml的三种解析方法相关推荐

  1. 用python解析xml的几种方法,Python_XML的三种解析方法

    什么是XML? XML 指可扩展标记语言(eXtensible Markup Language). XML 被设计用来传输和存储数据. XML是一套定义语义标记的规则,这些标记将文档分成许多部件并对这 ...

  2. xml的三种解析方式

    本篇博客重点介绍Android中三种解析XML的方式,包括PULL.SAX.DOM,当然不止这些,还可以用第三方的jar包提供的解析,只是这三种在Android中比较常用吧.再顺便介绍一下Androi ...

  3. Android中XML的三种解析器分析、实战

    XML解析器介绍 Android中提供了三种方式来解析XML: SAX(simple API for XML) DOM(文档对象模型) 以及Android内部使用的Pull解析. SAX(simple ...

  4. xml文件的三种解析方式 DOM SAM PULL

    <?xml version="1.0" encoding="UTF-8"?> <root><student id="1& ...

  5. java解析xml的三种方法

    java解析XML的三种方法 1.SAX事件解析 package com.wzh.sax;import org.xml.sax.Attributes; import org.xml.sax.SAXEx ...

  6. php xml对象解析_php解析xml 的四种简单方法(附实例)

    XML处理是开发过程中经常遇到的,PHP对其也有很丰富的支持,本文只是对其中某几种解析技术做简要说明,包括:Xml parser, SimpleXML, XMLReader, DOMDocument. ...

  7. 用Python解析XML的几种常见方法的介绍

    这篇文章主要介绍了用Python解析XML的几种常见方法,包括快速的使用ElementTree模块等方法的实例介绍,需要的朋友可以参考下 一.简介 XML(eXtensible Markup Lang ...

  8. Android解析XML的三种方式

    在Android中提供了三种解析XML的方式:DOM(Document Objrect Model),SAX(Simple API XML),以及Android推荐的Pull解析方式. 如图: 本篇博 ...

  9. Java解析Xml的三种方式总结

    转自:http://blog.csdn.net/zjf280441589/article/details/50613881 XML解析技术有两种 DOM SAX DOM方式  根据XML的层级结构在内 ...

  10. 黑马程序员_Java解析网络数据流的三种特殊方法

    Java解析网络数据流的三种特殊方法 Java作为最开放的语言,已越来越受到网络程序员的青睐.但这一青睐族有着同样的经历--曾经都为网络上通信的Java数据格式而烦恼. 笔者也不例外,曾经为此而查阅了 ...

最新文章

  1. mysql json类型数组索引_MySQL JSON 类型数据操作
  2. HashMap原理和使用
  3. [汇编语言]实验:应用更灵活的寻址方式来定位内存地址
  4. 1.5编程基础之循环控制 37 雇佣兵
  5. 引入CSS文件的@import与link的权重分析
  6. elasticsearch5.0启动出现的错误
  7. VBS教程-wscript对象
  8. SQL Server跨server之间訪问
  9. BAT文件中如何注释:
  10. ie上传文件到ftp服务器,通过浏览器上传文件到ftp
  11. PHPUnit 在 Windows下的安装
  12. matlab教程黄金分割,Matlab程序设计在黄金分割法教学中的应用
  13. 共享充电线项目市场分析报告
  14. 视觉SLAM十四讲-第九讲例程运行出错
  15. 让海航买不起的当当究竟值多少钱?90亿够不够?
  16. oppo手机忘记解锁图案怎么办
  17. 四阶龙格库塔法的基本思想_请问用四阶龙格库塔法解二阶微分方程的思想是什么?...
  18. cnn和rnn和tcn
  19. Jquery+javascript制作支付网页数字键盘
  20. svg 树状图_d3 树状布局tree

热门文章

  1. SVM支持向量机原理(一) 线性支持向量机
  2. 如何将本地项目上传到码云
  3. 《VP9 Video Codec》Overview
  4. ppt导出pdf后非矢量图图片失真的解决办法
  5. 一直用破解软件?可以试试学生优惠!
  6. 新手练字又快又好的方法
  7. AI语音合成软件免费的有哪些?常用的语音合成软件
  8. 详解30道Vue面试题
  9. PS剪切图的基本操作
  10. 2021水利规范工程建设项目施工监理规范工程量清单计价施工安全(共161份,931M)