-[NSXMLNode nodeForXPath:error:] возвращает пустой массив, но не должен

Я пытаюсь разобрать канал Atom. Я продлил NSXMLNode с помощью этого метода через категорию:

- (NSString *)stringValueForNodeAtXPath:(NSString *)XPath error:(NSError **)error {
  NSArray *nodes = [self nodesForXPath:XPath error:error];
  if ([nodes count] == 0) { return nil; }
  return [[nodes lastObject] stringValue];
}

Этот метод возвращает строковое значение узла, когда ожидается только один узел.

Запись фида Atom выглядит так:

<entry>
  <title>A title</title>
  <id>Unique id</id>
</entry>

у меня есть NSXMLElement объект как тот выше Тем не менее, при попытке получить либо title или id из entry, -[NSXMLNode nodesForXPath:error:] возвращает пустой массив (и поэтому мое расширение возвращает nil):

_uniqueId = [[XMLElement stringValueForNodeAtXPath:@"/entry/id" error:error] copy];

В чем может быть проблема? Мой запрос XPath неверен? Там явно id в entry, а также entry является корневым элементом.


Да, NSLog -ную XMLElement подтверждает мое последнее предложение.

0 ответов

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