XML答案问题

时间:2010-05-27 07:11:30

标签: iphone ipad touchxml

我试图从谷歌天气api读取响应数据,但德语变音符号没有正确显示。而不是“ö”,我得到“^”。

我认为问题在于这两行代码:

CXMLElement *resultElement = [nodes objectAtIndex:0];
description = [[[[resultElement attributeForName:@"data"] stringValue] copy] autorelease];

如何在没有stringValue的情况下从resultElement中获取数据?

PS:我使用TouchXML来解析xml

1 个答案:

答案 0 :(得分:2)

我想你必须使用NSURLConnection来获取你的数据。收到数据后,可以使用适当的编码将其转换为NSString。例如。

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{
    if(xmlResponse == nil){
        xmlResponse = [[NSMutableString alloc] initWithData:data encoding:NSISOLatin1StringEncoding]; 
    }
    else{
        NSMutableString *temp = [[NSMutableString alloc] initWithData:data encoding:NSISOLatin1StringEncoding];
        [xmlResponse appendString:temp];
        [temp release];
    }

}

此处xmlResponse是您可以传递给解析器的NSMutableString。我使用过NSISOLatin1编码。你可以检查其他类型的编码,看看是什么给你正确的字符(NSUTF8StringEncoding我应该这样做)。你可以查看API文档以获得支持的编码列表。