次のXMLをで解析していますNSXMLParser
が、XMLで見つかった一意の要素に基づいて特定の要素と属性のみを解析してから、解析を中止したいと思います。
たとえば、私のXMLは次のようになります。
<?xml version="1.0" encoding="UTF-8"?>
<systems>
<system id="system1">
<game title="game1">
<checksums>
<checksum value="checksumvalue1" />
</checksums>
<players>
<player name="name1" description="description1" />
<player name="name2" description="description2" />
</players>
</game>
</system>
の値のみに基づいてオールplayers
インを返すことができるようにしたいので、メソッド
に渡す場合は、その1つのノードで見つかったものだけを一意のチェックサムで返したいと思います。XMLには、チェックサムを備えた他のゲームがありますが、チェックサムは常に一意です。game
checksum
checksumvalue1
players
game
これまでのところ、チェックサム値から要素と属性を読み取るための基本的なパーサーコードがいくつかありますが、そこからどこに行くべきかわかりません。NSXMLNode
また、XPathを使用すると、これを実現する方が理にかなっているのではないかと思います。
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict{
if ([elementName isEqualToString:@"checksum"] && [[attributeDict valueForKey:@"value"] isEqualToString:@"checksumvalue1"]) {
NSString *checksumValue = [attributeDict valueForKey:@"value"];
NSLog(@"value: %@", checksumValue);
// print players in only one game node that contains the unique checksum value
}
}
助けてくれてありがとう!