我正在解析以下 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
因此
如果我传递给我的方法,我只想返回在该节点中找到的具有唯一校验和的值。在 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
}
}
谢谢你的帮助!