代码之家  ›  专栏  ›  技术社区  ›  conorgriffin

我需要帮助调试我的xml解析请

  •  0
  • conorgriffin  · 技术社区  · 16 年前

    我正在分析这一行:

    <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 回复  |  直到 16 年前
        1
  •  1
  •   Brett Kail    16 年前

    我怀疑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>