1

我正在尝试构建一个在启动期间连接到网站并下载 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" error:nil];

并能够使用 - 获取其属性和最多第一个子节点

[CXMLElement childAtIndex:index];

但是我将如何进一步进入子节点及其节点并获取它们的值。非常感谢任何帮助。链接文本

4

2 回答 2

1

您可以为此使用 XPath:-

  NSArray *nodes = [doc nodesForXPath:@"//itemA/itemB/itemC1" error:nil]; 

这将返回 itemC1 元素中的所有节点。注意“doc”是您的 CXMLDocument 对象。

完整语法的 Google XPath。

于 2010-09-17T11:41:48.947 回答
1

你会大概在这种情况下,使用事件驱动解析器肯定会更好;NSXMLParser.

于 2010-09-17T10:06:53.087 回答