Синтаксический анализ XML с помощью подузлов

#iphone #ios4 #nsxmlparser

#iPhone #ios4 #nsxmlparser

Вопрос:

Мне нужны некоторые рекомендации по синтаксическому анализу XML. в моем случае я должен проанализировать XML, который выглядит следующим образом

 -<food-drive><coordinator cordid="4">
       <name>Luis Abarca</name>
       <teamname>A parents</teamname>
       <target>$3,500.00</target>
       <received>$0.00</received><image>
        alink
       </image><teammember count="1"><member memid="3">
      <membername>Rub</membername>
      <email>ssn@gmail.com</email>
      <phone>(323) 807-3920</phone>
   </member>
</teammember>
</coordinator><coordinator cordid="9">
     <name>Jani</name>
     <teamname>Woori's LA Keeper</teamname>
     <target>$200.00</target>
     <received>$0.00</received><image>
          alink
     </image>
</coordinator><coordinator cordid="11">
    <name>Jan</name>
    <teamname>Woori LA Keeper</teamname>
    <target>$200.00</target>
    <received>$0.00</received><image>
       alink
    </image>
</coordinator><coordinator cordid="13">
   <name>Julio Torres</name>
   <teamname>Our Town El Sereno</teamname>
   <target>$1,000.00</target>
   <received>$0.00</received><image>
      alink
   </image>
</coordinator>
</food-drive>
  

Здесь тег [coordinator] является основным тегом, а тег [teammember] — внутренним тегом, но этот тег появляется редко. Теперь я хочу проанализировать этот xml и сохранить данные. Я не понимаю, как хранить данные, потому что тег [coordinator] может содержать более одного тега [teammember] !!! есть предложения?

Комментарии:

1. Если это реальные имена людей, адреса электронной почты и номера телефонов, вам не следует их публиковать. Замените поддельными данными перед публикацией.

Ответ №1:

Сохраняйте изменяемый массив членов команды и один объект, который указывает на «текущий».

Если вы используете встроенный анализатор XML, вы должны didStartElement: выделить и поместить в массив нового члена команды и настроить объект так, чтобы он указывал на него.

Таким образом, последующие записи, относящиеся к членам команды, смогут обращаться к этому объекту для заполнения данных.