Как разобрать сложное дерево 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
,