解析器换行符如果字符串包含–
问题描述:
我的NSXMLParser打破这个字符串:解析器换行符如果字符串包含–
<title>AAA – BCDEFGQWERTYUIO</title>
我分析它以这种方式,希望是正确的方式:
- (void) parser: (NSXMLParser *) parser foundCharacters: (NSString *) string{
[...]
if ([currentElement isEqualToString:@"title"]) {
if (![string isEqualToString:@""]) {
[title addObject:string];
NSLog(@"str: %@", string);
}
}
它返回我:
str:AAA
STR: -
STR:BCDEFGQWERTYUIO
但我想返回一个字符串:
STR:AAA - BCDEFGQWERTYUIO
,因为它是正确的标题。
有什么想法?
谢谢。
答
我发现最好在didEndElement方法中创建对象。这样,你可以继续追加字符串数据到一些临时字符串。所以,你可能做类似如下(注:代码未测试)
在你的对象标题:
NSMutableString *currentElementData;
...
@property (nonatomic, retain) NSMutableString *currentElementData;
并在您的解析代码,你将不得不
- (void) parser: (NSXMLParser *) parser foundCharacters: (NSString *) string{
[...]
if ([currentElement isEqualToString:@"title"]) {
[currentElementData appendString:string];
}
}
然后在你的元素后面结束
- (void) parser: (NSXMLParser *) parser didEndElement: (NSString *) elementName...{
[...]
if ([elementName isEqualToString:@"title"]) {
[title addObject:currentElementData];
[currentElementData setString:@""];
}
}
好吧,它是正确的。谢啦!啊,在你的snipplet中,修正[currentElementData setString:@“”]; – elp 2010-12-22 12:04:52
更新了您的修补程序。很高兴我能帮上忙。 – Walter 2010-12-22 14:45:02