android 中的xml解析

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应该是比较好的选择了。

你可能感兴趣的:(html,xml,android,F#)