Разрешение пространства имен TouchXML? - PullRequest
2 голосов
/ 10 октября 2011

Я пытаюсь проанализировать следующий XML с помощью TouchXML:

<s:Envelope xmlns:s="namespace_1">
   <s:Body>
      <DefinedEntitiesResponse xmlns="namespace_2">
         <DefinedEntitiesResult xmlns:a="namespace_3" xmlns:i="namespace_4">
            <a:DefinedEntity>
               <a:Description>Some Description</a:Description>
               <a:Name>Some entity name</a:Name>
            </a:DefinedEntity>
         </DefinedEntitiesResult>
      </DefinedEntitiesResponse>
   </s:Body>
</s:Envelope>

Я пытаюсь разобрать это так:

CXMLDocument *doc = [[[CXMLDocument alloc] initWithXMLString:[request responseString] options:0 error:nil] autorelease];

NSArray *resultNodes = [doc nodesForXPath:@"/s:Envelope" error:nil];
NSLog(@"Resultnodes: %@", resultNodes);

И получаю ошибку:

XPath error : Undefined namespace prefix
XPath error : Invalid expression

Вопрос 1: Что я делаю не так? Вопрос 2: я должен использовать TouchXML в качестве библиотеки, или есть что-то, что работает проще и лучше?

1 Ответ

2 голосов
/ 10 октября 2011

Используйте следующий проект на github для анализа вашего XML в NSDictionary.Затем вы можете использовать NSPredicate для поиска значений в разобранном словаре.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...