1

起動時に Web サイトに接続して 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>

ここで 3 つのドット「. . .」数十/数百の同じ種類の要素を提示します。すべての属性とノードの内容を抽出したい。最初に私はから始めます

[CXMLDocument nodesForXPath:@"//itemA" エラー:nil];

-を使用して、その属性と最初の子ノードまで取得できます

[CXMLElement childAtIndex:index];

しかし、子ノードとそのノードにさらに移動して、それらの値を取得する方法。どんな助けでも大歓迎です.link text

4

2 に答える 2

1

するでしょうおそらくこの場合、イベント駆動型パーサーを使用する方が確実に優れています。NSXMLParser.

于 2010-09-17T10:06:53.087 に答える
1

これにはXPathを使用できます:-

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

これにより、itemC1 要素のすべてのノードが返されます。「doc」は CXMLDocument オブジェクトです。

完全な構文については、Google XPath を参照してください。

于 2010-09-17T11:41:48.947 に答える