从XML文件填充表视图单元格

时间:2014-11-06 18:33:20

标签: ios objective-c 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>

我想要的是,例如,仅为“Architecture”键的项目填充表格视图。我怎么能这样做?

现在,我这样做非常简单:

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

我应该在某种程度上指定密钥吗?或者将我的XML文件分开?

任何建议都将不胜感激,谢谢!

2 个答案:

答案 0 :(得分:1)

第一步应该是,将你的xml更改为属性列表。(其他选项是解析你的xml我不推荐)。 在新文件中 - &gt;资源 - &gt;您找到一个空白的属性列表文件模板。

答案 1 :(得分:1)

您必须解析XML文件才能创建它的对象表示。 为此,您可以使用NSXMLParser类(tuto by Apple),或使用更快的库(look here for a good start)。

获得对象表示后,可以使用它来填充tableView。