我是 Objective C 的新手,我正在使用一个帮助器,它从 Web 服务返回 XML 有效负载作为 NSXMLParser。我需要将该有效负载作为 XML 的 NSString 或 NSData 对象获取,以便我可以在另一个将有效负载转换为 NSDictionary 的库中使用它。
有没有一种简单的方法可以将此 XML 转换为字符串?从文档中,我看到我可以使用 NSXMLParser 的事件编写自己的字符串构建器,但与在其他语言中使用 XML 相比,这感觉像是在重新发明轮子。
我是 Objective C 的新手,我正在使用一个帮助器,它从 Web 服务返回 XML 有效负载作为 NSXMLParser。我需要将该有效负载作为 XML 的 NSString 或 NSData 对象获取,以便我可以在另一个将有效负载转换为 NSDictionary 的库中使用它。
有没有一种简单的方法可以将此 XML 转换为字符串?从文档中,我看到我可以使用 NSXMLParser 的事件编写自己的字符串构建器,但与在其他语言中使用 XML 相比,这感觉像是在重新发明轮子。
这对你有用吗?
NSString *googleString = @"http://www.google.com";
NSURL *googleURL = [NSURL URLWithString:googleString];
NSError *error;
NSString *googlePage = [NSString stringWithContentsOfURL:googleURL
encoding:NSASCIIStringEncoding
error:&error];
从这里您应该能够转换为 NSXmlParser 或 NSData 但如果您向服务发出此请求,它应该将 xml 作为字符串返回。
您可以将 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);