Ios NSXMLParser无法处理某些标记

Ios NSXMLParser无法处理某些标记,ios,xml,parsing,Ios,Xml,Parsing,我试图解析一个xml文件(下面的链接)以获取所有带有标记的文本。我能够做到这一点,但解析器忽略了以破折号(-)结尾的一行,并将其替换为破折号(请参见下面的示例),而一些带有对话标记的代码则以新的空行结尾。这可能是什么原因造成的(即文本编码问题,不正确的解析) 这是文件: 我使用这样的代码来获取内容: - (void) parser:(NSXMLParser *)parser didEndElement:(NSString *)elementname namespaceURI:(NSStr

我试图解析一个xml文件(下面的链接)以获取所有带有标记的文本。我能够做到这一点,但解析器忽略了以破折号(-)结尾的一行,并将其替换为破折号(请参见下面的示例),而一些带有对话标记的代码则以新的空行结尾。这可能是什么原因造成的(即文本编码问题,不正确的解析)

这是文件:

我使用这样的代码来获取内容:

   - (void) parser:(NSXMLParser *)parser didEndElement:(NSString *)elementname namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
    {
    if ([elementname isEqualToString:@"l"]) {
        NSString *textSoFar = [[NSUserDefaults standardUserDefaults] stringForKey:@"litText"];
        textSoFar = [[NSString alloc] initWithFormat:@"%@\n%@", textSoFar, currentNodeContent];
        [[NSUserDefaults standardUserDefaults] setObject:textSoFar forKey:@"litText"];
    }
    }
问题行的一个例子就在起点附近,应该是:

Id metuens, veterisque memor Saturnia belli,
prima quod ad Troiam pro caris gesserat Argis—
necdum etiam causae irarum saevique dolores
但它的出现是:

Id metuens, veterisque memor Saturnia belli,
—
necdum etiam causae irarum saevique dolores
如果你需要更多的帮助来理解我的问题,请告诉我,提前谢谢你的帮助

另外,这是我的解析器:找到字符代码,我注释掉了currentNodeContent,但它仍然不起作用

- (void) parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
    //currentNodeContent = (NSMutableString *) [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
}

在foundCharacters方法中,可能设置了currentNodeContent。您应该附加它,因为每个节点可以多次调用它

另见这个问题:

你应该有这样的东西:

在didStartElement功能中:

currentNodeContent = [[NSMutableString alloc] init];
[currentNodeContent appendString:string];
在foundCharacters函数中:

currentNodeContent = [[NSMutableString alloc] init];
[currentNodeContent appendString:string];

然后它将工作

我已经将此代码添加到我的原始问题中,这有帮助吗?此外,我注释掉了该行并得到了很多(空)我现在在使用另一个标记时遇到问题,如果您有机会,问题如下: