- [NSXMLNode nodeForXPath: error:] возвращает пустой массив, но не должен - PullRequest
3 голосов
/ 08 октября 2011

Я пытаюсь разобрать канал 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 выглядит следующим образомthis:

<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 неверен?В entry явно указан id, а корневым элементом является entry.


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

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