在使用XML的iPad应用程序中我想了解如果使用递归解析XML文档会大大占用内存。我问这个是因为xml深约6级,为每个节点类型编写解析逻辑会很乏味。
提前感谢您对此的指导
答案 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有多大以及代码的编写方式。