2010-02-24 191 views
0

我有這樣的NSString? (在iPhone應用程序中)獲取元素值

NSString *xmlStr = "<?xml version=1.0 encoding=UTF-8> 
         <information> 
          <name>John</name> 
          <id>435346534</id> 
          <phone>045635456</phone> 
          <address>New York</address> 
         </information>" 

如何獲取元素值? (我需要轉換爲XML格式並獲取元素值?或拆分字符串?請以任何方式告訴我?)

謝謝你們。

回答

0

如果要使用拆分字符串,可以使用「componentsSeparatedByString」方法使用字符串標記。這當然是一種更麻煩的方法,而不是推薦的XMLParser

獲取名稱。

NSArray *xmlStr_first_array = [xmlStr componentsSeparatedByString: @"<name>"]; 

NSString *xmlStr_split = [NSString stringWithFormat:@"%@",[xmlStr_first_array objectAtIndex:1]]; 

NSArray *xmlStr_second_array = [xmlStr_split componentsSeparatedByString: @"</name>"]; 

NSString *name = [NSString stringWithFormat:@"%@",[xmlStr_second_array objectAtIndex:0]]; 
+0

我有點不同意這種方法... – Vladimir 2010-02-24 08:58:15

+0

@Vladimir。當然不推薦。列出缺點,幫助這個人。你當然比我多。 – erastusnjuki 2010-02-24 09:44:07

+0

很難說......它只是錯誤的方式來處理XML :) – Vladimir 2010-02-24 15:07:44

0

您的字符串已經是xml格式,您需要解析它才能檢索數據。有幾個選項可用 - 例如,您可以使用NSXMLParser類或libxml庫。

編輯:XMLPerformance示例項目顯示如何使用這兩種方法並比較它們的性能。

+0

你有源代碼嗎? – MartinJoo 2010-02-24 09:26:05

0

最明顯的解決方案是使用XML解析器從每個元素中檢索值。

您可以使用優秀的TBXML執行此任務。它提供了一個非常簡單的界面,在這個界面中,檢索所需的值不會超過幾行。使用這個小型庫的缺點是它(據我所知)將整個XML數據加載到內存中。然而,在這個特殊情況下,這根本就沒有問題。

當然也有使用NSXMLParser的選項,儘管這是一個事件驅動的解析器,因此使用起來不那麼簡單。