我需要帮助来调试我的XML解析

时间:2010-04-23 21:59:17

标签: objective-c xml cocoa-touch parsing

我正在解析这一行:

<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];
}

我不明白回车的位置,有人可以帮忙吗?

1 个答案:

答案 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>