我正在解析这一行:
<type>branch</type>
此代码位于didEndElement
if ([elementName isEqualToString:@"type"]) {
[currentBranchDictionary setValue:currentText forKey:currentElementName];
}
当我在type
密钥中测试值时,它不包含branch
,而是包含branch\n
。这是我正在进行的测试:
if ([[currentBranchDictionary valueForKey:@"type"] isEqualToString:@"branch"]) {
NSLog(@"no new-line");
} else if ([[currentBranchDictionary valueForKey:@"type"] isEqualToString:@"branch\n"]) {
NSLog(@"new-line");
}
这将返回“新行”输出
这是foundCharacters方法:
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
[currentText appendString:string];
}
我不明白回车的位置,有人可以帮忙吗?
答案 0 :(得分:1)
我怀疑您的XML包含编辑器未显示的回车符(“\ r”)。 XML规范要求在将结果报告给您的应用程序之前将这些转换为换行符(“\ n”):
http://www.w3.org/TR/REC-xml/#sec-line-ends
您可以验证XML文件的内容吗? xxd命令的输出是什么?这是我创建的文件的输出。注意额外的0d字符:
0000000: 3c74 7970 653e 6272 616e 6368 0d3c 2f74 <type>branch.</t
0000010: 7970 653e ype>