3

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 クエリは間違っていますか? には明らかに がありidentryentryルート要素です。


はい、NSLog-ingXMLElementは私の最後の文を確認します。

4

0 に答える 0