0

非常にフラットな XML ファイルを返す URL があります:<entries><title>val1</title><author>Bob</author></entries>コードは正常に実行されます:

NSString *urlString = [NSString stringWithFormat:@"http://www.somesite.php?qid=%d", __inum];
NSLog(@"urlString = %@", urlString);
NSURLResponse * response = nil;
NSError * error = nil;
NSURLRequest * urlRequest = [NSURLRequest requestWithURL: [NSURL URLWithString:urlString]];
NSData * myData = [NSURLConnection sendSynchronousRequest:urlRequest returningResponse:&response error:&error];

NSLog(@"%@", myData);

TBXML *sourceXML = [[TBXML alloc] initWithXMLData:myData error:nil];

TBXMLElement *rootElement = sourceXML.rootXMLElement;

if (rootElement) {

    NSLog(@"Root element found...");

TBXMLElement *qaElement1 = [TBXML childElementNamed:@"title" parentElement:rootElement];
if (qaElement1) {
    NSString *idAttribute = [TBXML valueOfAttributeNamed:@"title" forElement:qaElement1];
    NSLog(@"Got to the 1st call for idAttribute... %@", idAttribute);
}
else { NSLog(@"There is no value for title..."); }

}

else { NSLog(@"Root element must be null..."); }

}

ルート要素を見つけて、valueOfAttribute:@"title" の呼び出しに到達しますが、値は常に (null) です。

だから私の質問: NSData を人間が読める形式に戻すために何かをしなければなりませんか? そうでない場合、'myData' から UTF8 で NSString を作成 (および使用) する呼び出しは何ですか?

4

1 に答える 1

0

'myData' から UTF8 で NSString を作成 (および使用) する呼び出しは何ですか?

使用するinitWithData:encoding:

NSString *str = [[NSString alloc] initWithData:myData encoding:NSUTF8StringEncoding];

または、 null で終わる UTF8 文字列であるstringWithUTF8String:ことがわかっている場合myData

NSString *str = [NSString stringWithUTF8String:[myData bytes]];

エラーを無視しないでください。

NSError *error = nil;
TBXML *sourceXML = [[TBXML alloc] initWithXMLData:myData error:&error];
if (error) {
     // handle it, at least log it
}
于 2014-07-17T01:19:52.253 に答える