我正在尝试解析 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
-ingXMLElement
证实了我的最后一句话。