2013-02-15 42 views
0

我是Objective C的新手,我正在使用帮助程序,它从Web服务返回一个XML有效内容作为NSXMLParser。我需要将该有效内容作为XML的NSString或NSData对象,以便我可以在另一个将该有效内容转换为NSDictionary的库中使用它。从NSXMLParser输出一个字符串

是否有一种简单的方法将此XML转换为字符串?从文档中,我发现我可以使用NSXMLParser的事件编写我自己的字符串生成器,但与使用其他语言的XML相比,这感觉像重新发明轮子。

+2

听起来也许你应该刚刚绕过助手,并从Web服务获取XML自己。 – bdesham 2013-02-15 15:50:39

+1

你出于某种原因需要使用特定的助手吗?我这样做的方式是使用'NSURLConnection' - 可以实现'NSURLConnectionDelegate'方法'-connectionDidReceivedData:'以便将数据附加到'NSMutableData'实例 - 然后可以将它们馈送到其他图书馆 – 2013-02-15 15:52:37

+0

是的,每个人似乎都在说要跳过图书馆(这是AFXMLRequestOperation)。我会把它挂钩。我不知道为什么图书馆返回一个解析器而不是一个字符串......哦,好吧。 – Jelling 2013-02-15 17:17:06

回答

0

您可以将NSMutableData转换为字符串:

你发送请求:

conexion = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self]; 
    if (conexion) { 
     webData = [NSMutableData data]; 
    } 

然后,解析WEBDATA字符串。在这个函数:connectionDidFinishLoading

NSString *XML = [[NSString alloc] 
        initWithBytes: [webData mutableBytes] 
        length:[webData length] 
        encoding:NSUTF8StringEncoding]; 

如果需要显示结果

NSLog(@"%@", XML); 
1

这是否适合您?

NSString *googleString = @"http://www.google.com"; 
NSURL *googleURL = [NSURL URLWithString:googleString]; 
NSError *error; 
NSString *googlePage = [NSString stringWithContentsOfURL:googleURL 
               encoding:NSASCIIStringEncoding 
                error:&error]; 

从这里 Reading HTML content from a UIWebView

从这里你应该能够隐蔽到的NSXMLParser或NSData的,但如果你提出这一要求的服务应该返回XML作为字符串。

相关问题