Как разобрать сложное дерево XML с помощью TouchXml в iPhone

Я пытаюсь создать приложение, которое при запуске подключается к веб-сайту и загружает данные XML. Хотя данные большие (100 КБ), и я использую TouchXml для этого. XML-это как это.

<?xml version="1.0" encoding="UTF-8"?>
<itemA attA="AAA" attB="BBB" attC="CCC">
      <itemB>
            <itemC1 attD="DDD" attE="EEE" attF="FFF">
                  <itemD>                     
                         <itemE1 attG="GGG">
                                <itemF>ZZZ</itemF>
                                <itemG>
                                      <itemH1 attH="HHH">
                                            <itemG>ZZZ</itemG>
                                            <itemH>YYY</itemH>
                                      </itemH1>
                                      <itemH1 attH="III">
                                      ...                               
                                </itemG>
                          </itemE1>
                          ...
                   </itemD> 
              </itemC1>
              ...
       </itemB>
</itemA>

Здесь три точки ". . ." представляет десятки / сотни одинаковых элементов. Я хочу извлечь каждый атрибут и содержимое узла. Изначально я начинаю с

[CXMLDocument nodeForXPath:@"//itemA" error:nil];

и в состоянии получить его атрибуты и до первых дочерних узлов, используя -

[CXMLElement childAtIndex: index];

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

2 ответа

Вы можете использовать XPath для этого:-

  NSArray *nodes = [doc nodesForXPath:@"//itemA/itemB/itemC1" error:nil]; 

Это вернет все узлы в элементе itemC1. Обратите внимание, что 'doc' - это ваш объект CXMLDocument.

Google XPath для полного синтаксиса.

Ты бы наверное в этом случае лучше использовать обработчик событий; NSXMLParser,

Другие вопросы по тегам