2014-06-11 1 views
0

XML 파일에 데이터를 보유하는 앱이 있습니다. 이 파일에는 약 300 개 이상의 엔티티가 포함 된 요소와 하위 요소가 들어 있습니다. 해당 파일의 일부를 살펴보십시오.XML 파일에 데이터를 보유하는 앱에 대한 검색을 추가하십시오.

<?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> 

내가 원하는 것은 검색 창을 구현하는 것입니다. 사용자가 텍스트 입력을 시작하면 해당 이름의 엔티티가 나타납니다. 다음과 같은 내 문제 - 어떻게 달성 해야할지 모르겠다. 예를 들어 "Кремль"을 찾았을 때 어떻게 든 하위 요소에 대한 정보를 전달해야한다. 응용 프로그램은 해당 엔티티, 설명 및 기타 XML 파일의 하위 요소에 저장되어있는 올바른 이미지를 표시해야합니다. 어쩌면 NSDictionary로 이것을 할 수있는 방법이 있습니까?

감사의 말을 들어주세요.

+0

는 JSON에 XML을 변환합니다. 그런 다음 NSArray/NSDictionary를 얻으려면 NSJSONSerialization을 사용하십시오. – mbogh

답변

1

참고 :이 작업은 쉽게 수행 할 수 있지만 몇 단계 만 수행하면됩니다. 처음으로 - 데이터를 올바르게 구문 분석하고 사전 배열을 만듭니다.

두 번째 - sqlite와 같은 로컬 데이터베이스를 사용하고 Blob 데이터 유형의 모든 이미지 (blob 데이터 유형은 NS 데이터 형태로 이미지를 저장할 수 있음)를 저장해야합니다. 여기에 2 개의 열, 하나의 이름 및 기타 이미지 데이터가있는이 테이블을 생성해야하는 트릭 부분이 있습니다. 즉, 모든 이미지 데이터를 해당 이미지 이름 앞에 저장하고 필요할 때마다 db에서 추출합니다.

제 3의 ** - 검색 표시 줄 구현 ** 이제 전체 데이터가 이미 구문 분석되어 배열 (또는 사전)에 저장되었습니다. 예를 들어 사용자가 검색 표시 줄 "krem"에 코드를 입력하면 kremlin 키를 검색하고이 kremlin 키를 사용하여 파싱 된 데이터를 검색합니다. 사전에서 적절한 URL 이름을 찾아이 URL 이름으로 DB에서 이미지를 추출합니다 (이름은 our db의 필드). 쉽게 작업의 많은하지만이 달성 할 수

을 수행합니다 ..이 시도 .. 당신이 앱 번들에 저장된 어떤 경우

관련 문제