2014-11-06 49 views
-1

我有一個數組(相當大),現在我想從它的特定項目(特定鍵)填充我的表格視圖。請看看我的XML文件的一部分:從XML文件填充表格視圖單元

</Shops> 
    <Architecture>Архитектурные достопримечательности<place> 
      <name>Старый английский двор</name> 
      <description>Старый английский двор — архитектурно-историческая достопримечательность и музей Москвы (ул. Варварка, д. 4). Памятник гражданской архитектуры XV—XVII веков, резиденция английской торговой Московской компании, а во время посольских миссий — Английский посольский дом.</description> 
      <webpage>http://ru.wikipedia.org/wiki/Английский_двор_(Москва)</webpage> 
      <latitude>55.752297</latitude> 
      <longitude>37.626897</longitude> 
      <imageCell>https://dl.dropbox.com/s/gzbgtll5wzn9dox/StaryiAngliskyiDvor.jpg?dl=0</imageCell> 
      <imageFirst>https://dl.dropbox.com/s/8abn9c6omb1qp3h/StaryiAngliskyiDvor.jpg?dl=0</imageFirst> 
      <imageSecond>https://dl.dropbox.com/s/ihrdgys6nr1zsiz/EnglishCourt2.jpg</imageSecond> 
      <imageThird>https://dl.dropbox.com/s/yt36zjdc1vqgb1k/EnglishCourt3.jpg</imageThird> 
      <imageFourth>https://dl.dropbox.com/s/iu9upggjuafd8y5/EnglishCourt4.jpg</imageFourth> 
     </place> 
     <place> 
      <name>Палаты Романовых</name> 
      <description>Палаты Романовых находятся в Зарядье. Зарядье — так в старину называлась часть центра Москвы, расположенная «за рядами» торговых лавок, примыкающих к Кремлю. Район расположен к Востоку от Кремля, между Варварской улицей, в советские времена носившей имя Разина, и Москвой-рекой. Свое название он получил в XVI веке. И сегодня это место в центре Москвы. Палаты Романовых в Зарядье — это единственная постройка, сохранившаяся от большой усадьбы бояр Романовых.</description> 
      <webpage>http://ru.wikipedia.org/wiki/Палаты_Романовых</webpage> 
      <latitude>55.752717</latitude> 
      <longitude>37.629189</longitude> 
      <imageCell>https://dl.dropbox.com/s/d9ule0w6ps968ih/PalatiRomanovi.jpg?dl=0</imageCell> 
      <imageFirst>https://dl.dropbox.com/s/tmyi71om08fbvhd/PalatiRomanovi.jpg?dl=0</imageFirst> 
      <imageSecond>https://dl.dropbox.com/s/bnjjzqhdes7y1wj/PalatiRomanovih2.jpg</imageSecond> 
      <imageThird>https://dl.dropbox.com/s/i64yhbwsduk1gem/PalatiRomanovih3.jpg</imageThird> 
      <imageFourth>https://dl.dropbox.com/s/thx7en6i157nsng/PalatiRomanovih4.jpg</imageFourth> 
     </place> 

我想要的是,例如,填充表視圖只爲「建築」關鍵的項目。我怎麼能這樣做?

在現在,我做到這一點很簡單:

labelText.text = [[self.listOfPlaceDetails objectAtIndex:indexPath.row] objectForKey:@"name"]; 

我應該以某種方式指定鍵?或者將我的XML文件分離出來?

任何意見將不勝感激,謝謝!

回答

1

您必須解析您的XML文件才能創建它的對象表示。 爲此,您可以使用NSXMLParser類(tuto by Apple),或使用更快的庫(look here for a good start)。

一旦你有你的對象表示,你可以用它來填充你的tableView。

+0

我真的很奇怪爲什麼沒有簡單的方法,比如objectForKey:@「key」和forChildNode:@「Node」。 XML文件組織良好,但與它們合作感到痛苦。 – 2014-11-06 22:22:45

1

第一步應該是,把你的xml改成屬性列表(其他選項是解析你的xml我不推薦)。 在新文件 - >資源 - >您找到一個空白屬性列表文件模板。

+0

我在這個XML文件中付出了很多努力,我認爲它不合理的改變它。以及屬性列表如何幫助?它類似於XML。 – 2014-11-06 18:54:14

+0

屬性列表是一個XML文件,但帶有一些標籤,而不是輕易將其轉換爲NSArray或NSDictionary。在你的xml中,標籤是關鍵,解析它(沒有第三部分代碼)是很難的。 – 2014-11-06 18:58:52

+0

plist文件加載非常快,但它需要更多時間來解析XML文件。但也許他不能將他的XML更改爲plist,因爲他從web服務中獲取它。 – Imotep 2014-11-06 21:36:45