我有一个 iOS 应用程序,它从服务器下载一个在 Windows 1252 中编码的 XML 文件。
我正在使用以下代码将其保存到我的文档文件夹中:
NSString *path = @"http://server/file.xml";
NSURL *URL = [NSURL URLWithString:[path stringByAddingPercentEscapesUsingEncoding:NSWindowsCP1252StringEncoding]];
NSData *xmlData = [NSData dataWithContentsOfURL:URL];
if(xmlData == nil) {
// Error - handle appropriately
NSLog(@"ERROR");
}
NSString *applicationDocumentsDir=[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSString *storePath=[applicationDocumentsDir stringByAppendingPathComponent:@"annonces.xml"];
[xmlData writeToFile:storePath atomically:TRUE];
NSLog(@"write xml");
它不起作用,当我尝试使用解析器读取它时,我得到了一个 nil 响应。我该怎么做才能正确获得它。我无法更改服务器上 te xml 的编码。如果我手动更改 XML 编码,我会得到正确的响应。
这就是我传递 XML 字符串以使用 XML Dictionnary 类对其进行解析的方式:
NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *finalPath = [path stringByAppendingPathComponent:@"annonces.xml"];
NSString *string = [[NSString alloc] initWithContentsOfFile:finalPath encoding:NSWindowsCP1252StringEncoding error:NULL];
NSLog(@"string: %@", string);
NSDictionary *items = [NSDictionary dictionaryWithXMLString:string];
NSLog(@"dictionary: %@", items);