Ios NSXMLParser无法处理某些标记
我试图解析一个xml文件(下面的链接)以获取所有带有标记的文本。我能够做到这一点,但解析器忽略了以破折号(-)结尾的一行,并将其替换为破折号(请参见下面的示例),而一些带有对话标记的代码则以新的空行结尾。这可能是什么原因造成的(即文本编码问题,不正确的解析) 这是文件: 我使用这样的代码来获取内容:Ios NSXMLParser无法处理某些标记,ios,xml,parsing,Ios,Xml,Parsing,我试图解析一个xml文件(下面的链接)以获取所有带有标记的文本。我能够做到这一点,但解析器忽略了以破折号(-)结尾的一行,并将其替换为破折号(请参见下面的示例),而一些带有对话标记的代码则以新的空行结尾。这可能是什么原因造成的(即文本编码问题,不正确的解析) 这是文件: 我使用这样的代码来获取内容: - (void) parser:(NSXMLParser *)parser didEndElement:(NSString *)elementname namespaceURI:(NSStr
- (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];
然后它将工作我已经将此代码添加到我的原始问题中,这有帮助吗?此外,我注释掉了该行并得到了很多(空)我现在在使用另一个标记时遇到问题,如果您有机会,问题如下: