用于iPhone App的Objective C中的SimpleXML解析方式

时间:2009-09-03 14:08:11

标签: iphone xml

我一直想知道是否有一种方法可以像在PHP中使用SimpleXML一样解析Objective C中的XML。

我所知道的唯一现有方法如下:

  1. 使用NSXMLParser并创建一个委托来处理遇到XML元素,值等时触发的事件......

  2. 使用基于libxml2的框架(如TouchXML),利用XPath轻松查询XML文件中的节点。

  3. 我不确定在Objective C for iPhone中是否还有其他解析XML的方法。

    提前感谢您的帮助! :)

    干杯! Oonoo

    更新:SimpleXML示例

    如果不熟悉SimpleXML,可以这么简单:

    $xml = simplexml_load_string($xmlfilecontents); 
    echo $xml->user->name; //for this example code, im not traversing through all the user elements
    

    鉴于xmlfilecontents是字符串类型的xml文件内容,包含带子的用户elements():

    <users> 
    <user><name>john</name></user> 
    <user><name>jane</name></user> 
    </users> 
    

    它只是加载xml并自动实例化一个捕获xml文件中所有数据的对象。访问数据是一种简单的调用,如$ xml-&gt; element-&gt; attr

1 个答案:

答案 0 :(得分:3)

如果您想将libxml2与Objective-C前端一起使用,请查看此有用的wrapper functions集。

您向XML文档对象发出XPath查询并获取基础类对象:NSArrayNSStringNSDictionary,例如:

NSArray *queriedBuckets = PerformXMLXPathQuery(responseData, @"//*[local-name()='Buckets']/*[local-name()='Bucket']");

这些函数有助于将libxml2的速度与Objective-C代码的可读性和可用性结合起来。