TTXMLParser Пример кода? - PullRequest
       11

TTXMLParser Пример кода?

0 голосов
/ 16 ноября 2010

Кто-нибудь знает, как использовать TTXMLParser.Я не могу найти документацию или образец кода на нем.

Это SAX или DOM?

Поддерживает ли он Xpath?

Можно ли извлечь CDATA из элементов?

У меня есть приложение, которое уже использует несколько модулей Three20, было бы стыдно использовать другойсинтаксический анализатор.

1 Ответ

2 голосов
/ 17 ноября 2010

Основная документация, которую я нашел для TTXMLParser, находится в заголовочном файле .Комментарий там дает обзор того, что делает TTXMLParser.

На самом деле TTXMLParser не следует рассматривать как анализатор XML, как вы думаете об этом - в этом смысле такие вопросы, как «действительно ли это SAXили DOM "и" поддерживает ли XPath "не применяются напрямую.Вместо этого думайте о TTXMLParser как об удобном классе, чтобы взять XML и превратить его в дерево объектов Objective-C.Например, этот узел XML:

<myNode attr1="value1" attr2="value2" />

будет превращен в узел Objective-C NSDictionary, который сопоставит ключ "attr1" со значением "value1" и ключ "attr2" с ключом"value2".

TTXMLParser внутренне использует NSXMLParser (который по сути является SAX) для построения своего дерева, но вам, как пользователю TTXMLParser, не нужно делать никаких SAX-подобных вещей.

Итак, нет, вы не получите XML-документ, в котором вы можете выполнять запросы XPath.Вместо этого вы получите дерево объектов Objective-C.Если это то, что вы хотите, отлично;Если вам нужен традиционный XML-парсер с XPath, я сейчас работаю над проектом, который использует Three20 и TouchXML.TouchXML поддерживает XPath.

Я согласен, что трудно найти пример кода для TTXMLParser.* * * * *. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 10 * 10 *.потому что это был их единственный образец XML.

Вы все еще можете увидеть старый образец кода на основе XML здесь .В частности, посмотрите на функцию -[requestDidFinishLoad:] в нижней части файла, чтобы найти пример кода, который принимает TTURLXMLResponse, запрашивает его член rootObject и затем перемещается по результирующему дереву объектов.

...