如何在iphone 2.0中解析xml字符串

时间:2011-01-11 16:12:10

标签: iphone

我从.net网络服务器以xml字符串的形式获取信息(ID,名称,地址)。

我正在使用NSXMlparsing在iphone os 4.0中解析这个xml字符串。

现在我需要在iphone os 2.0中执行相同的应用程序。

我发现Nsxmlparsing委托应该适用于4.0及更高版本。

任何人都可以建议哪种方法适合解析xml字符串和示例教程。

提前感谢你。

4 个答案:

答案 0 :(得分:2)

在iOS 4.0中添加了NSXMLParserDelegate。 您可以使用#define指令声明该协议,以便在4.0之前的iOS版本中包含协议声明,以便能够编译您的代码,但您不必在此协议定义中包含所有方法。
你可以这样做:

#if __IPHONE_OS_VERSION_MAX_ALLOWED < __IPHONE_4_0

@protocol NSXMLParserDelegate <NSObject>
@end

#endif

答案 1 :(得分:1)

自iPhone OS 2.0起,

NSXMLParser已经可用。委托协议也一直可用,但在iOS 4.0之前NSXMLParserDelegate是所谓的非正式协议,例如没有明确定义。

从iOS 4.0开始,许多以前非正式的协议已被提升为实际格式协议,NSXMLParserDelegate就是其中之一。

关于不符合协议的警告是针对SDK 4.0及更高版本构建的,或者如果可以通过有条件地遵循协议来修复早期SDK的构建,则会丢失协议:

@interface MyClass : NSObject
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_4_0
    <NSXMLParserDelegate>
#endif
{
   // Your ivars here
}
// And methods here as usual
@end

或者,当您将代理设置为id时,可以使编译器关闭,如下所示:

[myXMLParser setDelegate:(id)self];  // Assuming self is the delegate

答案 2 :(得分:0)

编辑:来自doc的NSXMLParser 可用性适用于iOS 2.0及更高版本。

答案 3 :(得分:0)

根据the NSXMLParser documentation,您可以将其与iOS 2.0一起使用。代表文档提到了iOS4。其中一个是错误的,我没有iOS 2.0设备来测试它,但你有没有尝试过当前形式的应用程序?我在这里的假设是委托文档是错误的,它实际上支持2.0。