zoukankan      html  css  js  c++  java
  • iOS平台XML解析类库对比和安装说明

    在iPhone开发中,XML的解析有很多选择,iOS SDK提供了NSXMLParser和libxml2两个类库,另外还有很多第三方类库可选,例如TBXML、TouchXML、KissXML、TinyXML和GDataXML。问题是应该选择哪一个呢?

    解析 XML 通常有两种方式,DOM 和 SAX:

    • DOM解析XML时,读入整个XML文档并构建一个驻留内存的树结构(节点树),通过遍历树结构可以检索任意XML节点,读取它的属性和值。而且通常情况下,可以借助XPath,直接查询XML节点。
    • SAX解析XML,是基于事件通知的模式,一边读取XML文档一边处理,不必等整个文档加载完之后才采取操作,当在读取解析过程中遇到需要处理的对象,会发出通知对其进行处理。

    一般在iOS平台下,比较常用的XML解析类库有如下几种:

    安装说明
    GDataXML

    1. 从http://code.google.com/p/gdata-objectivec-client/downloads/list下载“gdata-objective-c client library.”

    2. 解压缩文件,找到SourceXMLSupport,并且将其中的GDataXMLNode.h 和 GDataXMLNode.m文件拖到项目中

    3. 选中项目,选中“Build Settings”标签页

    4. 将Build Settings页中,顶部的“Basic”标签切换到“All”

    5. 找到“PathsHeader Search Paths”项,并添加“/usr/include/libxml2”到列表中

    6. 找到“LinkingOther Linker Flags”项,并添加“-lxml2”到列表中

    clip_image002

    在需要调用GDataXML的代码文件头部,加入:

    #import “GDataXMLNode.h”

    TouchXML

    1. 从https://github.com/TouchCode/TouchXML下载最新TouchXML源码

    2. 解压后,将其中的Sources目录下的文件和目录都拖到项目中

    3. 选中项目,选中“Build Settings”标签页

    4. 将Build Settings页中,顶部的“Basic”标签切换到“All”

    5. 找到“PathsHeader Search Paths”项,并添加“/usr/include/libxml2”到列表中

    6. 找到“LinkingOther Linker Flags”项,并添加“-lxml2”到列表中

    在需要调用TouchXML的代码文件头部,加入:

    #import “TouchXML.h”

    TBXML

    1. 从http://www.tbxml.co.uk/TBXML/TBXML_Free.html下载最新TBXML源码

    2. 解压后,将其中的TBXML.h, TBXML.m, NSDataAdditions.h和NSDataAddtions.m四个文件拖到项目中

    3. 添加对libz.dylib类库的应用

    在需要调用TBXML的代码文件头部,加入:

    #import “TBXML.h”

    使用说明
    GDataXML

    读取XML文件,并解析成为DOM文档对象示例:

    NSString *filePath = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"xml"];

    NSData *xmlData = [[NSMutableData alloc] initWithContentsOfFile:filePath];

    NSError *error;

    GDataXMLDocument *doc = [[GDataXMLDocument alloc] initWithData:xmlData options:0 error:&error];

    if (doc == nil) { return nil; }

    NSLog(@"%@", doc.rootElement);

    [doc release];

    [xmlData release];

  • 相关阅读:
    对象池使用时要注意几点
    Flash3D学习计划(一)——3D渲染的一般管线流程
    714. Best Time to Buy and Sell Stock with Transaction Fee
    712. Minimum ASCII Delete Sum for Two Strings
    647. Palindromic Substrings(马拉车算法)
    413. Arithmetic Slices
    877. Stone Game
    338. Counting Bits
    303. Range Sum Query
    198. House Robber
  • 原文地址:https://www.cnblogs.com/ubersexual/p/3238779.html
Copyright © 2011-2022 走看看