android 中的xml解析
16lz
2021-12-04
android 中的xml解析应该是和java中一条道路 主要分为sax 解析和的Dom 解析。
如下的介绍的相关的包和类均为android 环境下:
sax解析对应为:
org\xml\sax 包 :xml解析
javax.xml.parsers.SAXParserFactory
javax.xml.parsers.SAXParser
两个主要用于SAXParser的上下文建立
示例如下:
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser parser = factory.newSAXParser();
ParseXML parX = new ParseXML();
parser.parse("F:\\emps.xml", parX);
这里的ParseXML 一般是继承于org.xml.sax.helpers.DefaultHandler类的解析实现。
因为Sax 对xml的解析是基于事件类型的,也就是Sax Parser逐步的读取xml文件,然后碰到一个节点,一个属性,碰到一个节点的结束等事件都会回调哦org.xml.sax.helpers.DefaultHandler 之类的实现,然后在Hander 的实现中具体解析各个节点名称,属性名称。通过以上的特点可以看出sax有速度快(不需要全部的读入内存并构建树),消耗的内存较少,线性的从上往下解析,所以它比较的适合于xml文件大,速度要求高,解析结构自上而下 如把html展示出来,xml转为html等。
Dom解析对应为:
org\w3c\dom包:xml的各个元素对应类
javax.xml.parsers.DocumentBuilderFactory
javax.xml.parsers.DocumentBuilder
结构也和sax 一样,最终的解析目标指向org.w3c.dom.Document.
示例如下:
File docFile = new File("orders.xml");
Document doc = null;
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
doc = db.parse(docFile); // get the document.
因为Dom 是基于树结构,所以要全部结构内容读入内容,构造树,所以比较花费时间,但是dom 的操作可以反复的来回操作,灵活性比较高,做出的程序结构也比较容易认可,对于那些性能要求不是很高的,内容比较少的,xml上下结构比较复杂的用dom应该是比较好的选择了。
如下的介绍的相关的包和类均为android 环境下:
sax解析对应为:
org\xml\sax 包 :xml解析
javax.xml.parsers.SAXParserFactory
javax.xml.parsers.SAXParser
两个主要用于SAXParser的上下文建立
示例如下:
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser parser = factory.newSAXParser();
ParseXML parX = new ParseXML();
parser.parse("F:\\emps.xml", parX);
这里的ParseXML 一般是继承于org.xml.sax.helpers.DefaultHandler类的解析实现。
因为Sax 对xml的解析是基于事件类型的,也就是Sax Parser逐步的读取xml文件,然后碰到一个节点,一个属性,碰到一个节点的结束等事件都会回调哦org.xml.sax.helpers.DefaultHandler 之类的实现,然后在Hander 的实现中具体解析各个节点名称,属性名称。通过以上的特点可以看出sax有速度快(不需要全部的读入内存并构建树),消耗的内存较少,线性的从上往下解析,所以它比较的适合于xml文件大,速度要求高,解析结构自上而下 如把html展示出来,xml转为html等。
Dom解析对应为:
org\w3c\dom包:xml的各个元素对应类
javax.xml.parsers.DocumentBuilderFactory
javax.xml.parsers.DocumentBuilder
结构也和sax 一样,最终的解析目标指向org.w3c.dom.Document.
示例如下:
File docFile = new File("orders.xml");
Document doc = null;
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
doc = db.parse(docFile); // get the document.
因为Dom 是基于树结构,所以要全部结构内容读入内容,构造树,所以比较花费时间,但是dom 的操作可以反复的来回操作,灵活性比较高,做出的程序结构也比较容易认可,对于那些性能要求不是很高的,内容比较少的,xml上下结构比较复杂的用dom应该是比较好的选择了。
更多相关文章
- 【Android】Android(安卓)Parcelable 源码解析
- Android项目Android(安卓)Studio目录结构
- Android的源代码结构
- Android(安卓)进阶——Android(安卓)Studio 项目结构详细述及Gra
- 原始Android的目标机代码结构
- Android(安卓)DOM解析XML
- Android(安卓)xml资源文件animal动画解析
- Android使用XML全攻略(2)
- 花了 6 个月整理了 100 篇 Android(安卓)干货文章