Ios 添加对在XML文件中保存数据的应用程序的搜索

Ios 添加对在XML文件中保存数据的应用程序的搜索,ios,objective-c,Ios,Objective C,我有一个将数据保存在XML文件中的应用程序。该文件包含元素和子元素,大约300多个实体。请看一下该文件的一部分: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <root> <Kremlin>Кремль и Красная площадь<place> <name>Московский кремль</name>

我有一个将数据保存在XML文件中的应用程序。该文件包含元素和子元素,大约300多个实体。请看一下该文件的一部分:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<root>
    <Kremlin>Кремль и Красная площадь<place>
            <name>Московский кремль</name>
            <description>Моско́вский Кре́мль — древнейшая часть Москвы, главный общественно-политический, духовно-религиозный и историко-художественный комплекс города, официальная резиденция Президента Российской Федерации. Расположен на высоком левом берегу Москвы-реки — Боровицком холме, при впадении в неё р. Неглинной. В плане Кремль — неправильный треугольник площадью 27,5 га. Южная стена обращена к Москве-реке, северо-западная — к Александровскому саду, восточная — к Красной площади. http://ru.wikipedia.org/wiki/Московский_Кремль</description>
            <webpage>http://ru.wikipedia.org/wiki/Московский_Кремль</webpage>
            <latitude>55.75212</latitude>
            <longitude>37.617665</longitude>
            <imageCell>https://dl.dropbox.com/s/0o6h7bmn1muj7oz/MKCell.jpg</imageCell>
            <imageFirst>https://dl.dropbox.com/s/9bsvnfccxy0s8rn/MK1.jpg</imageFirst>
            <imageSecond>https://dl.dropbox.com/s/jq5gv1a58qg4llx/MK2.jpeg</imageSecond>
            <imageThird>https://dl.dropbox.com/s/5vvt4k64oj47f42/MK3.jpg</imageThird>
            <imageFourth>https://dl.dropbox.com/s/jruja8o4iwf8r55/MK4.jpg</imageFourth>
        </place>
        <place>
            <name>Спасская башня</name>
            <description>Спа́сская башня (ранее — Фроло́вская башня) — выходящая на Красную площадь одна из 20 башен Московского Кремля. В башне расположены главные ворота Кремля — Спасские, в шатре башни установлены знаменитые часы — куранты.</description>
            <webpage>http://ru.wikipedia.org/wiki/Спасская_башня</webpage>
            <latitude>55.752696</latitude>
            <longitude>37.621672</longitude>
            <imageCell>https://dl.dropbox.com/s/sjpqthepnqxfr0r/SBCell.jpg</imageCell>
            <imageFirst>https://dl.dropbox.com/s/fch0kvr8ltzx41i/SB1.jpg</imageFirst>
            <imageSecond>https://dl.dropbox.com/s/o6tiayev00z3uen/SB2.jpg</imageSecond>
            <imageThird>https://dl.dropbox.com/s/iy7cuw98fxq3cda/SB3.jpg</imageThird>
            <imageFourth>https://dl.dropbox.com/s/luephoe2e03njtu/SB4.jpg</imageFourth>
        </place>

Кремль и Красная площадь
Московский кремль
Моско́вский Кре́мль — древнейшая часть Москвы, главный общественно-политический, духовно-религиозный и историко-художественный комплекс города, официальная резиденция Президента Российской Федерации. Расположен на высоком левом берегу Москвы-реки — Боровицком холме, при впадении в неё р. Неглинной. В плане Кремль — неправильный треугольник площадью 27,5 га. Южная стена обращена к Москве-реке, северо-западная — к Александровскому саду, восточная — к Красной площади. http://ru.wikipedia.org/wiki/Московский_Кремль
http://ru.wikipedia.org/wiki/Московский_Кремль
55.75212
37.617665
https://dl.dropbox.com/s/0o6h7bmn1muj7oz/MKCell.jpg
https://dl.dropbox.com/s/9bsvnfccxy0s8rn/MK1.jpg
https://dl.dropbox.com/s/jq5gv1a58qg4llx/MK2.jpeg
https://dl.dropbox.com/s/5vvt4k64oj47f42/MK3.jpg
https://dl.dropbox.com/s/jruja8o4iwf8r55/MK4.jpg
Спасская башня
Спа́сская башня (ранее — Фроло́вская башня) — выходящая на Красную площадь одна из 20 башен Московского Кремля. В башне расположены главные ворота Кремля — Спасские, в шатре башни установлены знаменитые часы — куранты.
http://ru.wikipedia.org/wiki/Спасская_башня
55.752696
37.621672
https://dl.dropbox.com/s/sjpqthepnqxfr0r/SBCell.jpg
https://dl.dropbox.com/s/fch0kvr8ltzx41i/SB1.jpg
https://dl.dropbox.com/s/o6tiayev00z3uen/SB2.jpg
https://dl.dropbox.com/s/iy7cuw98fxq3cda/SB3.jpg
https://dl.dropbox.com/s/luephoe2e03njtu/SB4.jpg
我想要的是,实现一个搜索栏。当用户开始键入文本时,将出现具有该名称的实体。我在以下方面的问题-我不确定如何实现这一点,例如,当我找到“κСМаа”时,我需要以某种方式传递有关子元素的信息。应用程序应该为该实体、描述和其他内容显示一个正确的图像,该图像存储在XML文件的子元素中。也许,有一种方法可以用NSDictionary做到这一点


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

看,这很容易做到,但只需几个步骤。 首先正确解析数据并创建字典数组

Second-您应该使用像sqlite这样的本地数据库,并将所有图像保存在Blob数据类型中(Blob数据类型可以将图像保存为NS数据)。这里有一个技巧,你必须创建一个包含两列的表,一个是名称,另一个是图像数据。i、 e您将所有图像数据存储在各自的图像名称前面,并在需要时从数据库中提取

Third***-现在就实现搜索栏。**因为您的整个数据已经被解析并存储在数组(或字典)中。例如,假设用户在搜索栏“krem”中键入,应用代码搜索密钥kremlin,并使用此kremlin密钥在解析数据中搜索。从字典中找到合适的url名称,并使用此url名称从数据库中提取图像(名称是我们在数据库中的字段)


你可以很容易地做到这一点,但还有很多工作要做。。试试这个..

如果XML是存储在应用程序包中的内容,请将其转换为JSON。然后使用
NSJSONSerialization
获取NSArray/NSDictionary。