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];
}
このメソッドは、ノードが 1 つだけ必要な場合に、ノードの文字列値を返します。
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
は私の最後の文を確認します。