【问题标题】:XML answer problemXML回答问题
【发布时间】:2010-05-27 07:11:30
【问题描述】:

我尝试从 google 天气 api 读取响应数据,但未正确显示德语变音符号。我得到的是“^”,而不是“ö”。

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

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

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

PS:我使用TouchXML来解析xml

【问题讨论】:

  • 请发布您尝试读取数据的 URL。
  • #define GOOGLE_WEATHER_SERVICE @"google.com/ig/api?weather=%@&hl=de" 这是网址,但我已经测试过网址。 ö 的 xml 响应是正确的

标签: iphone ipad touchxml


【解决方案1】:

我想你必须使用 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。我使用了 NISOLatin1 编码。您可以检查其他类型的编码,看看是什么给了您正确的字符(我想 NSUTF8StringEncoding 应该这样做)。您可以检查 API 文档以获取支持的编码列表。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-12
    • 1970-01-01
    相关资源
    最近更新 更多