使用递归来解析iOS中的XML(ipad / iphone)

时间:2012-02-28 08:26:44

标签: ios xml recursion

在使用XML的iPad应用程序中我想了解如果使用递归解析XML文档会大大占用内存。我问这个是因为xml深约6级,为每个节点类型编写解析逻辑会很乏味。

提前感谢您对此的指导

2 个答案:

答案 0 :(得分:2)

我建议您不要使用NSXMLParser(内部版本)。

请看这里:http://www.raywenderlich.com/553/how-to-chose-the-best-xml-parser-for-your-iphone-project

我建议你使用GDataXML(谷歌iOS工具包的一部分)。它非常快,内存小,可靠。 http://code.google.com/p/gdata-objectivec-client/source/browse/trunk/Source/XMLSupport/

您可以使用某些XPath来访问xml中的数据:

GDataXMLDocument *xmlDocument = [[GDataXMLDocument alloc] initWithData:data options:0 error:&error];
GDataXMLElement *rootElement = [xmlDocument rootElement];

NSError *xPathError;
NSArray *objects = [rootElement nodesForXPath:@"//NodeA/NodeB" error:&xPathError];

如果您不熟悉XPath:请检查http://manual.calibre-ebook.com/xpath.html

问候

答案 1 :(得分:0)

我说它取决于堆栈的大小。您可以在此处找到更多信息Threading Programming

我不能给你一个明确的答案,因为它取决于你的XML有多大以及代码的编写方式。