我正在尝试构建一个应用程序,在启动期间连接到网站并下载XML数据。虽然数据很大(100 KB),我正在使用TouchXml。 xml是这样的。
<?xml version="1.0" encoding="UTF-8"?>
<itemA attA="AAA" attB="BBB" attC="CCC">
<itemB>
<itemC1 attD="DDD" attE="EEE" attF="FFF">
<itemD>
<itemE1 attG="GGG">
<itemF>ZZZ</itemF>
<itemG>
<itemH1 attH="HHH">
<itemG>ZZZ</itemG>
<itemH>YYY</itemH>
</itemH1>
<itemH1 attH="III">
...
</itemG>
</itemE1>
...
</itemD>
</itemC1>
...
</itemB>
</itemA>
这里有三个点“......”呈现数十/数百种相同类型的元素。我想提取每个属性和节点内容。最初我以
开头[CXMLDocument nodesForXPath:@“// itemA”错误:nil];
并且能够使用 -
获取其属性和第一个子节点[CXMLElement childAtIndex:index];
但是我将如何进一步进入子节点及其节点并获取它们的值。非常感谢任何帮助。链接文字
答案 0 :(得分:1)
在这种情况下,使用事件驱动的解析器肯定会更好地服务 ; NSXMLParser
。
答案 1 :(得分:1)
您可以使用XPath: -
NSArray *nodes = [doc nodesForXPath:@"//itemA/itemB/itemC1" error:nil];
这将返回itemC1元素中的所有节点。注意'doc'是您的CXMLDocument对象。
Google XPath的完整语法。