在iPhone开发中,XML的解析有不少选择,仅iOS SDK就提供了NSXMLParser和libxml2两个类库,还有如TBXML、TouchXML、KissXML、TinyXML和GDataXML等第三方类库。性能
解析XML一般有两种方式:DOM和SAXxml
DOM解析XML时,读入整个XML文档并构建一个驻留内存的树结构(称“节点树”),以后就经过遍历树结构能够检索任意XML节点,读取它的属性和值。而起一般状况下,能够借助XPath,直接查询XML节点。 SAX解析XML,是基于事件通知的模式,一边读取XML文档一边处理,没必要等整个文档加载完以后才采起操做,当在读取解析过程当中遇到须要处理的对象,会发出通知对其进行处理。对象
通常在iOS平台下,比较经常使用的XML解析类库有以下几种:事件
以上几大类库,在读取很小的XML文档上,性能基本没有差异,不过从调用的方便性来讲,建议使用TouchXML、KissXML或GDataXML。内存
若是是须要读取和修改XML文档,建议使用KissXML或GDataXML。开发
若是须要读取很是大的XML文档,则建议使用libxml2或TBXML。文档
不想使用第三方类库,则就使用iOS自带的NSXMLParser。效率