我正在尝试使用目标 C 语言读取 XML 文件并对其进行解析。我正在使用 XCode 4.2 并为 iPhone 编写应用程序。我创建了 Viewcontroller .h 和 .m 文件。我正在使用 NSXMLParser,xml 文件被命名为“simple.xml”。我已经从 w3schools 网站下载了它。我没有使用 ARC。没有构建错误。下面是我在 viewDidLoad 方法中的代码 -
NSString *filePath;
filePath = [[NSBundle mainBundle] pathForResource:@"simple" ofType:@"xml"];
NSData *fileData = [NSData dataWithContentsOfFile:filePath];
NSString *urlString = [[NSString alloc] initWithData:fileData encoding:NSASCIIStringEncoding];
NSLog(@"File data is %@",urlString);
NSString* str= urlString;
NSData* data=[str dataUsingEncoding:NSUTF8StringEncoding];
xmlParser = [[NSXMLParser alloc] initWithData:data];
xmlParser.delegate = self;
[xmlParser parse];
这是 XML 内容 -
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Edited by XMLSpy® -->
<breakfast_menu>
<food>
<name>Belgian Waffles</name>
<price>$5.95</price>
<description>two of our famous Belgian Waffles with plenty of real maple syrup</description>
<calories>650</calories>
</food>
<food>
<name>Strawberry Belgian Waffles</name>
<price>$7.95</price>
<description>light Belgian waffles covered with strawberries and whipped cream</description>
<calories>900</calories>
</food>
<food>
<name>Berry-Berry Belgian Waffles</name>
<price>$8.95</price>
<description>light Belgian waffles covered with an assortment of fresh berries and whipped cream</description>
<calories>900</calories>
</food>
</breakfast_menu>
但是当我执行这段代码时,程序突然终止。我在日志中没有看到任何异常信息。但它与 fileData 变量有关,因为在 XCode 中,我使用此变量的行以绿色显示,并带有文本“线程 1 停止执行...”。也许 XML 是用 ISO-8859-1 编码的,而我使用的是 ASCII 编码?早些时候,我使用类似的代码来解析从 Web 服务返回的 XML,当时响应是用 UTF-8 编码的。或者我在内存管理方面犯了一些错误..allos、release 等?请帮助我。
我也尝试在“TextEdit”中使用“UTF-8”保存文件,但没有这样的选项可用。