Ios 使用单引号的NSXMLParser存在问题

Ios 使用单引号的NSXMLParser存在问题,ios,objective-c,xcode,nsxmlparser,Ios,Objective C,Xcode,Nsxmlparser,它应该存储以下字符串:吉姆的随机主题。但它只停留在一个报价上。因此它存储Jim 吉姆';s随机话题';关于愚蠢的分号';s XMLParser.m(简化) 更新:我已经解决了我自己的问题,循环使用枚举,并在找到分号时追加字符串。谢谢大家。是的,现在开始工作了。我已经更新了上面的答案。检查数据的nslog您有权更改此字符串吗…??可能重复:。(foundCharacters:可以对一个XML元素调用多次。)@MartinR这有点相同,但对我不起作用,因为我的XML有更多不同

它应该存储以下字符串:吉姆的随机主题。但它只停留在一个报价上。因此它存储Jim

吉姆';s随机话题';关于愚蠢的分号';s

XMLParser.m(简化)


更新:我已经解决了我自己的问题,循环使用枚举,并在找到分号时追加字符串。谢谢大家。

是的,现在开始工作了。我已经更新了上面的答案。

检查数据的nslog您有权更改此字符串吗…??可能重复:。(foundCharacters:可以对一个XML元素调用多次。)@MartinR这有点相同,但对我不起作用,因为我的XML有更多不同的标记,我添加了一个“NOTFIRSTTIME”状态来解决这个问题。
typedef enum MESSAGE_TYPE {
    TITLE = 1,
    NOTFIRSTTIME = 2,
    SEMICOLON = 3
} Message_Type;

NSString * title;
NSXMLParser *rssParser;
Message_Type messageType;

+ (void)initialize {
     messageType = UNDEFINED;
}

- (void) parseXML:(NSData *) rawxml{

    NSString* myString;
    NSData *data;

    myString = [[NSString alloc] initWithData:rawxml encoding:NSASCIIStringEncoding];
    myString = [myString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
    data = [myString dataUsingEncoding:NSUTF8StringEncoding];

    rssParser = [[NSXMLParser alloc] initWithData:data];
    [rssParser setDelegate:self];
    [rssParser parse];
}

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict {

    if ([elementName isEqualToString:@"title"]) {
        messageType = TITLE;
    }
}

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{

if(messageType == SEMICOLON) {
    title = [title stringByAppendingString:string];
    messageType = NOTFIRSTTIME;
}

if(messageType == NOTFIRSTTIME) {
    if([string isEqualToString:@"'"]) {
        title = [title stringByAppendingString:string];
        messageType = SEMICOLON;
    }
}

    if(messageType == TITLE) {
        title = string;
        NSLog(@"title = %@",title);
        messageType = NOTFIRSTTIME;
    }
}