2011-10-21 120 views
0

我從GET請求做了NSData。從GET請求解析NSData

NSString *nameID = [[NSString alloc]initWithString: @"1"];   
NSString *urlString = [NSString stringWithFormat:@"http://www.xxxxx.com/news/index.php?id=%@", 
         [nameID stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 

NSURL *url = [[NSURL alloc] initWithString:urlString]; 

NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url]; 

NSData *urlData; 
NSURLResponse *response; 
urlData = [NSURLConnection sendSynchronousRequest:urlRequest returningResponse:&response error:nil]; 
NSString *results = [[NSString alloc] initWithData:urlData encoding:NSUTF8StringEncoding]; 
NSLog(@"%@",urlData); 

然後怎麼解析呢?我只有這樣的東西:

2011-10-21 19:27:06.213 httptest[1674:207] <3c21444f 43545950 45206874 6d6c2050 55424c49 4320222d 2f2f5733 432f2f44 54442058 48544d4c 

回答

0

您正在記錄urlData(NSData對象)而不是結果(NSString)。 NSData對象以十六進制數字對的形式顯示在輸出控制檯中。如果您登錄「結果」,你會看到類似這樣的:

<!DOCTYPE http... 

這是您所期望大概是什麼。

+0

我試着記錄結果(NSString),它只是(NULL),而不是<!DOCTYPE http ...出了什麼問題? – user1006770

0

您已經轉換所產生的數據到NSString

首先你必須定義什麼數據:XML或JSON字符串?或二進制編碼的東西?然後你必須編寫自己的解析器或選擇一個你喜歡的解析器。

我假設你的結果是xml,我們假設你想使用TBXML -Dom-Parser。然後嘗試:

NSString *results = [[NSString alloc] initWithData:urlData encoding:NSUTF8StringEncoding]; 
TBXML * tbxml = [TBXML tbxmlWithXmlString:result]; 
TBXMLElement *rootElement = tbxml.rootElement; 
TBXMLElement *childELement = [TBXML childElementNamed:@"myChildTag" parentElement:rootElement] 
..... //depends on how your xml looks like 
+0

結果是(空),當我試圖記錄它。 – user1006770

+1

你的意思是'NSLog(@「%@」,結果)'只是打印「(null)」?你知道什麼網絡服務器返回到你的應用程序? – thomas