0

この XML にはいくつかの ID があり、それぞれにデータがあります。すべての XML を解析しようとしているので、最終的に次のようなオブジェクトを取得します。

A1Object[a1,a1,a1,a1]
A2Object[a2,a2,a2,a2]

問題は、最初に A1、A2 のみを解析することです...

xml:

<response>
    <tmm>
        <tm id="A1"><DocumentElement>
            <cell>
                <name>Tom</name>
                <lastName>LastNameTom</lastName>
            </cell>
            <cell>
                <name>Tom1</name>
                <lastName>LastNameTom1</lastName>
            </cell>
        </tm>
        <tm id="A2">
            <cell>
                <carType>5</carType>
                <catId>4545</carId>
            </cell>
            <cell>
                <carType>6</carType>
                <catId>565656</carId>
            </cell>
        </tm>
        <tm id="A3">...</tm>
    </tmm>
</response>

私は各オブジェクト(a1、a2 ...)について、彼のフィールドとのインターフェースを持っています

私は次のことを試みています:

  if (xmlDocument != nil)
        {
            NSArray *nodes = [xmlDocument nodesForXPath:@"//cell" error: nil];
            if (nodes != nil)
            { 
                for (CXMLNode *node in nodes)
                {
                     A1 *a1Object = [[A1 alloc] init];

                    for (int i = 0; i < [node childCount]; i++)
                    {
                        CXMLNode *child = [node childAtIndex: i];
                        NSString *str = [child stringValue];
                        if ([[child name] isEqualToString: @"name"])
                        { 
                            a1Object.A1FacilityId = ([str length] > 0) ? str : nil;
                        }
                        if ([[child name] isEqualToString: @"lastName"])
                        { 
                            a1Object.A1FacilityStreetName = ([str length] > 0) ? str : nil;
                        }                      
                    }

                    [self.A1s addObject:a1Object];
                    [a1Object release];
                }            
            }
        }

どうすればそれを改善できるので、最終的には次のようになります。

A1Object[a1,a1,a1,a1]
A2Object[a2,a2,a2,a2
4

1 に答える 1

0

TBXML を使用して XML を解析できます。

http://tbxml.co.uk/

于 2012-08-30T08:02:04.653 に答える