-[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
подтверждает мое последнее предложение.