2

Google ドキュメントが利用できなくなったため、これらの概念がわかりません。

ノードとは何ですか? (ノードを継承する) 要素とは何ですか?

ノードから要素に切り替えるにはどうすればよいですか。たとえば、次のように書くとします。

NSError* error;
NSData* xmlData = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"ForTesting" ofType:@"xml"]];

error = nil;
GDataXMLDocument* XMLDoc = [[[GDataXMLDocument alloc] initWithData:xmlData options:0 error:&error] autorelease];
if (XMLDoc == nil) {
    NSLog(@"%@", error.description);
    return;
}

GDataXMLNode* xmlElement = [[XMLDoc nodesForXPath:@"//root/fileVersion" error:nil] objectAtIndex:0];
NSString* fileVersion = xmlElement.stringValue;

GDataXMLNode* xmlList = [[XMLDoc nodesForXPath:@"//root/list" error:nil] objectAtIndex:0];  // single item

そのコードの後、GDataXMLNode を続行する代わりに GDataXMLElement に切り替えるようなものをどのように書くことができますか?それには、XPath を使い続ける必要があります (その時点以降は使用したくありません)。

// code don't work : elementsForName is not defined for GDataXMLNode
for (GDataXMLElement* xmlObject in [xmlList elementsForName:@"object"]) {
    MyClass* obj = [[[MyClass alloc] initWithXMLElement:xmlObject] autorelease];
}
4

1 に答える 1