我有一个返回非常平坦的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..."); }
}
找到root元素并获取valueOfAttribute的调用:@“title”但值始终为(null)。
所以我的问题是:我是否必须做一些事情才能将NSData转换为可读的人(我的印象是TBXML提供了与NSData一起使用的选项并进行了计算)。如果没有,那么从'myData'创建(然后使用)UTF8中的NSString的调用是什么?
答案 0 :(得分:0)
从'myData'创建(然后使用)UTF8中的NSString的调用是什么?
NSString *str = [[NSString alloc] initWithData:myData encoding:NSUTF8StringEncoding];
或stringWithUTF8String:
如果您知道myData
是以空值终止的UTF8字符串
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
}