2012-08-23 30 views
0

我是xcode的新手..我很想了解從XML中檢索數據..這是一個草稿代碼,我已經用了很多天..我設法顯示一個XML列表代碼檢索特定數據

XML代碼:

<find> 
<set_number>038881</set_number> 
<no_records>000138874</no_records> 
<no_entries>000007000</no_entries> 
</find> 

不過,現在我已經在這個XML檢索只有SET_NUMBER一些困難......的URL,我已經離開它的空白,由於保密的目的..所以不介意約它..最後兩個代碼導致我的應用程序強制關閉..幫助!

NSString *URL = [NSString stringWithFormat:@""]; 

NSMutableData *receivedData = [[[NSMutableData alloc] initWithContentsOfURL:[NSURL URLWithString:URL] ]autorelease];    
NSString *theRecord = [[[NSString alloc] initWithData:receivedData encoding:NSUTF8StringEncoding] autorelease]; 

    NSString *path = [theRecord valueForKey: @"set_number"]; 
    NSLog(@"File Data: %@", path);  

我試圖在底部,而不是在這個代碼中加入..

if ([theRecord isEqualToString:@"no_records"]){ 

     NSLog(@"Contents of URL: %@", theRecord); 
} 

然後,我還試圖調試我的代碼。沒有顯示錯誤..而不是他們的輸出顯示0。 。我想知道是不是因爲我的no_records是一個整數?但我已經把該記錄分配爲一個字符串..是他們爲什麼不能顯示?


我試圖在底部,而不是在這個代碼中加入..

`if ([theRecord isEqualToString:@"no_records"]){ 

     NSLog(@"Contents of URL: %@", theRecord); 
}` 

然後,我還試圖調試我的代碼。沒有顯示錯誤..而不是他們的輸出顯示0。 。我想知道是不是因爲我的no_records是一個整數?但我已經把該記錄分配爲一個字符串..是他們爲什麼不能顯示?請幫忙!!

+0

不是一個答案,但肯定你應該在定義*路徑之前嘗試NSLOG它。 –

+0

Yeap !!急於發佈問題,直到我預見到這個錯誤!已經編輯它!謝謝理查德(: – Sahara

+0

我做了以下最後兩個代碼,我得到了這個錯誤...終止應用程序由於未捕獲的異常'NSUnknownKeyException',原因:'[<__ NSCFString 0x887d000> valueForUndefinedKey:]:此類不是鍵值編碼 - 「不知道這是什麼意思..有人可以向我解釋這個嗎? – Sahara

回答

0

要解析XML,請使用NSXMLParser類。

+0

我想使用initWithData? – Sahara

+0

或者你的情況,只需使用initWithContentsOfURL來簡化你的代碼Seee http: //www.codeproject.com/Articles/248883/Objective-C-Fundamentals-NSXMLParser爲例。 –

0

NSString * path = [theRecord valueForKey:@「set_number」];

theRecord是一個不能使用valueForKey的NSString實例。 您應該首先解析您的xml字符串並從標記中獲取所需的內容。 或者你應該在你的字符串中得到子字符串。