android 中 XML 重点
SAX(Simple Api for XML)方式:
1.原理是将文档逐行读入内存,逐行解析
2.XML文档开始解析、结束解析,每个标签开始解析、结束解析的时刻都会触发一个事件,解析DTD和schema时也会触发一个事件,分别为
? startDocument()
? endDocument()
? startElement(......)
? character(......)
? endElement(......)
3.解析步骤:
? SAXParserFactory factory = SAXParserFactory.newInstance(); ?//得到一个SAX解析器工厂的实例
? XMLReader reader = factory.newSAXParser().getXMLReader(); ? //从SAX解析器工厂得到一个XMLreader
? reader.setContentHandler(new MyContentHandler()); ? ? ? ? ? //设置XMLReader的ContentHandler
? reader.parse(new InputSource(new StringReader(str))); ? ? ? //XMLReader读入xml文件的string
4.(3)中第三条语句用到的MyContentHandler需要新建一个类,extends DefaultHandler,override其中的(2)中的五个方法。
? PS:为什么不直接extends ContentHandler?因为DefaultHandler的存在使用的是适配器模式,由于共有四种handler,故先用DefaultHandler继承ContentHandler,然后在extends DefaultHandler
?
?
?
DOM方式:
1.原理是将XML文档全部读入内存,存入一个树形结构
?