我一直想知道是否有一种方法可以像在PHP中使用SimpleXML一样解析Objective C中的XML。
我所知道的唯一现有方法如下:
使用NSXMLParser并创建一个委托来处理遇到XML元素,值等时触发的事件......
使用基于libxml2的框架(如TouchXML),利用XPath轻松查询XML文件中的节点。
我不确定在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
答案 0 :(得分:3)
如果您想将libxml2
与Objective-C前端一起使用,请查看此有用的wrapper functions集。
您向XML文档对象发出XPath查询并获取基础类对象:NSArray
,NSString
和NSDictionary
,例如:
NSArray *queriedBuckets = PerformXMLXPathQuery(responseData, @"//*[local-name()='Buckets']/*[local-name()='Bucket']");
这些函数有助于将libxml2
的速度与Objective-C代码的可读性和可用性结合起来。