XPath, как выбрать первый элемент, не загружая весь xml? - PullRequest
2 голосов
/ 29 октября 2010

Я использую libxml2 на iPhone с красивым методом: PerformXMLXPathQuery из Какао с любовью .Проблема в том, как узнать, что отправили xml ведьмы без предварительного анализа всего документа ... Я попытался использовать запрос @ "/" для получения первого элемента, как написано при знакомстве с Cocoa with Love, но, к сожалению, PerformXMLXPathQuery вылетаетпричина этого запроса!

Когда я использую команду @ "/ *", все дерево анализируется, что очень неэффективно с точки зрения времени и потребления памяти.

Любые идеи, как этоработает?

спасибо Маркус

1 Ответ

0 голосов
/ 29 октября 2010

Я не уверен, насколько жесткими являются ваши требования к производительности, но использование SAX-анализатора, такого как NSXMLParser, позволит вам прекратить анализ после обработки искомого элемента.См. Метод

- (void)abortParsing

в анализаторе и

– parser:didStartElement:namespaceURI:qualifiedName:attributes:
– parser:didEndElement:namespaceURI:qualifiedName:

в протоколе NSXMLParserDelegate.

...