使用Cocos2d for iPhone中的GDataXmlNode将xml文档解析为数组

时间:2012-10-22 23:55:29

标签: ios xml cocos2d-iphone xml-parsing

所以,我找不到任何在线教程来解析xml文档到数组的方法,所以我试着用这种方式自己实现它:

NSMutableArray *data = [[[NSMutableArray alloc] init] autorelease];

NSString *filePath = [self dataFilePath:FALSE forWorld:world];
NSLog(@"filePath = %@",filePath);
NSData *xmlData = [[NSMutableData alloc] initWithContentsOfFile:filePath];
NSError *error;
GDataXMLDocument *doc = [[GDataXMLDocument alloc] initWithData:xmlData options:0 error:&error];
if (doc == nil) {return nil; NSLog(@"xml file is empty!");}
NSLog(@"Loading %@", filePath);

NSArray *dataArray = [doc nodesForXPath:@"//Levels/level" error:nil];
NSLog(@"Array Contents = %@", dataArray);


for (GDataXMLElement *element in dataArray) {
    NSArray *dataArrayContainer= [doc nodesForXPath:@"//Levels/level/data" error:nil];
    NSMutableArray *rowArray = [NSMutableArray array];
    int i=0;
    int j;

    for (GDataXMLElement *element in dataArrayContainer) {
        NSArray *dataPointArray = [element elementsForName:@"p"];
        if (dataPointArray.count > 0 && i <= dataPointArray.count) {
            NSLog(@"current i is %i",i);
            GDataXMLElement *dataArrayElement = (GDataXMLElement *) [dataPointArray objectAtIndex:i];
            NSNumber* dataElement = [NSNumber numberWithInt:[[dataArrayElement stringValue] intValue]];
            [data addObject: dataElement];

            i++;
        }
    }
Level *level = [[Level alloc] initWithdata:data];
[levels.levels addObject:level];
}

我的xml看起来像这样:

<Levels>
<level>
    <name> world1Level1 </name>
    <number> 1 </number>
    <unlocked> 1 </unlocked>
    <cheeses> 0 </cheeses>
    <data>
        <p>3</p><p>9</p><p>6</p><p>9</p><p>3</p><p>1</p><p>0</p><p>15</p><p>25</p><p>0</p><p>0</p>
    </data>
    <blocks>
        <row> <b>0</b> <b>0</b> <b>1</b> <b>15</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>1</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>1</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>1</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>1</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>1</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>1</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>1</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>1</b> <b>0</b> <b>0</b> </row>
    </blocks>

</level>

<level>
    <name> world1Level2 </name>
    <number> 2 </number>
    <unlocked> 0 </unlocked>
    <cheeses> 0 </cheeses>
    <data>
        <p>3</p><p>9</p><p>6</p><p>9</p><p>3</p><p>1</p><p>0</p><p>15</p><p>25</p><p>0</p><p>0</p>
    </data>
    <blocks>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
    </blocks>

</level>

<level>
    <name> world1Level3 </name>
    <number> 3 </number>
    <unlocked> 0 </unlocked>
    <cheeses> 0 </cheeses>
    <data>
        <p>3</p><p>9</p><p>6</p><p>9</p><p>3</p><p>1</p><p>0</p><p>15</p><p>25</p><p>0</p><p>0</p>
    </data>
    <blocks>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
    </blocks>
</level>

<level>
    <name> world1Level4 </name>
    <number> 4 </number>
    <unlocked> 0 </unlocked>
    <cheeses> 0 </cheeses>
    <data>
        <p>3</p><p>9</p><p>6</p><p>9</p><p>3</p><p>1</p><p>0</p><p>15</p><p>25</p><p>0</p><p>0</p>
    </data>
    <blocks>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
    </blocks>
</level>

<level>
    <name> world1Level5 </name>
    <number> 5 </number>
    <unlocked> 0 </unlocked>
    <cheeses> 0 </cheeses>
    <data>
        <p>3</p><p>9</p><p>6</p><p>9</p><p>3</p><p>1</p><p>0</p><p>15</p><p>25</p><p>0</p><p>0</p>
    </data>
    <blocks>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
    </blocks>
</level>

<level>
    <name> world1Level6 </name>
    <number> 6 </number>
    <unlocked> 0 </unlocked>
    <cheeses> 0 </cheeses>
    <data>
        <p>3</p><p>9</p><p>6</p><p>9</p><p>3</p><p>1</p><p>0</p><p>15</p><p>25</p><p>0</p><p>0</p>
    </data>
    <blocks>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
    </blocks>
</level>

<level>
    <name> world1Level7 </name>
    <number> 7 </number>
    <unlocked> 0 </unlocked>
    <cheeses> 0 </cheeses>
    <data>
        <p>3</p><p>9</p><p>6</p><p>9</p><p>3</p><p>1</p><p>0</p><p>15</p><p>25</p><p>0</p><p>0</p>
    </data>
    <blocks>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
    </blocks>
</level>

<level>
    <name> world1Level8 </name>
    <number> 8 </number>
    <unlocked> 0 </unlocked>
    <cheeses> 0 </cheeses>
    <data>
        <p>3</p><p>9</p><p>6</p><p>9</p><p>3</p><p>1</p><p>0</p><p>15</p><p>25</p><p>0</p><p>0</p>
    </data>
    <blocks>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
    </blocks>
</level>

<level>
    <name> world1Level9 </name>
    <number> 9 </number>
    <unlocked> 0 </unlocked>
    <cheeses> 0 </cheeses>
    <data>
        <p>3</p><p>9</p><p>6</p><p>9</p><p>3</p><p>1</p><p>0</p><p>15</p><p>25</p><p>0</p><p>0</p>
    </data>
    <blocks>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
    </blocks>
</level>

<level>
    <name> world1Level10 </name>
    <number> 10 </number>
    <unlocked> 0 </unlocked>
    <cheeses> 0 </cheeses>
    <data>
        <p>3</p><p>9</p><p>6</p><p>9</p><p>3</p><p>1</p><p>0</p><p>15</p><p>25</p><p>0</p><p>0</p>
    </data>
    <blocks>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
    </blocks>
</level>

<level>
    <name> world1Level11 </name>
    <number> 11 </number>
    <unlocked> 0 </unlocked>
    <cheeses> 0 </cheeses>
    <data>
        <p>3</p><p>9</p><p>6</p><p>9</p><p>3</p><p>1</p><p>0</p><p>15</p><p>25</p><p>0</p><p>0</p>
    </data>
    <blocks>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
    </blocks>
</level>

<level>
    <name> world1Level12 </name>
    <number> 12 </number>
    <unlocked> 0 </unlocked>
    <cheeses> 0 </cheeses>
    <data>
        <p>3</p><p>9</p><p>6</p><p>9</p><p>3</p><p>1</p><p>0</p><p>15</p><p>25</p><p>0</p><p>0</p>
    </data>
    <blocks>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
    </blocks>
</level>

<level>
    <name> world1Level13 </name>
    <number> 13 </number>
    <unlocked> 0 </unlocked>
    <cheeses> 0 </cheeses>
    <data> </data>

</level>

<level>
    <name> world1Level14 </name>
    <number> 14 </number>
    <unlocked> 0 </unlocked>
    <cheeses> 0 </cheeses>
    <data>
        <p>3</p><p>9</p><p>6</p><p>9</p><p>3</p><p>1</p><p>0</p><p>15</p><p>25</p><p>0</p><p>0</p>
    </data>
    <blocks>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
    </blocks>
</level>

<level>
    <name> world1Level15 </name>
    <number> 15 </number>
    <unlocked> 0 </unlocked>
    <cheeses> 0 </cheeses>
    <data>
        <p>3</p><p>9</p><p>6</p><p>9</p><p>3</p><p>1</p><p>0</p><p>15</p><p>25</p><p>0</p><p>0</p>
    </data>
    <blocks>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
    </blocks>
</level>

<level>
    <name> world1Level16 </name>
    <number> 16 </number>
    <unlocked> 0 </unlocked>
    <cheeses> 0 </cheeses>
    <data>
        <p>3</p><p>9</p><p>6</p><p>9</p><p>3</p><p>1</p><p>0</p><p>15</p><p>25</p><p>0</p><p>0</p>
    </data>
    <blocks>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
    </blocks>
</level>

<level>
    <name> world1Level17 </name>
    <number> 17 </number>
    <unlocked> 0 </unlocked>
    <cheeses> 0 </cheeses>
    <data>
        <p>3</p><p>9</p><p>6</p><p>9</p><p>3</p><p>1</p><p>0</p><p>15</p><p>25</p><p>0</p><p>0</p>
    </data>
    <blocks>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
    </blocks>
</level>

<level>
    <name> world1Level18 </name>
    <number> 18 </number>
    <unlocked> 0 </unlocked>
    <cheeses> 0 </cheeses>
    <data>
        <p>3</p><p>9</p><p>6</p><p>9</p><p>3</p><p>1</p><p>0</p><p>15</p><p>25</p><p>0</p><p>0</p>
    </data>
    <blocks>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
    </blocks>
</level>

<level>
    <name> world1Level19 </name>
    <number> 19 </number>
    <unlocked> 0 </unlocked>
    <cheeses> 0 </cheeses>
    <data>
        <p>3</p><p>9</p><p>6</p><p>9</p><p>3</p><p>1</p><p>0</p><p>15</p><p>25</p><p>0</p><p>0</p>
    </data>
    <blocks>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
    </blocks>
</level>

<level>
    <name> world1Level20 </name>
    <number> 20 </number>
    <unlocked> 0 </unlocked>
    <cheeses> 0 </cheeses>
    <data>
        <p>3</p><p>9</p><p>6</p><p>9</p><p>3</p><p>1</p><p>0</p><p>15</p><p>25</p><p>0</p><p>0</p>
    </data>
    <blocks>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
        <row> <b>0</b> <b>0</b> <b>0</b> <b>0</b> <b>0</b> </row>
    </blocks>
</level>
</Levels>

但是我只希望数组数据一次包含来自一个Level节点的值,显然这个问题是当我写:NSArray *dataArrayContainer= [doc nodesForXPath:@"//Levels/level/data" error:nil];时,它将数据节点从所有级别节点放入数组dataArrayContainer,这根本不是我想要它只从当前选定的级别放置数据节点。但是我似乎无法找到任何方法来做到这一点,我找不到在线的任何地方,它显示如何将变量发送到nodesForXPath,所以我不知道这是怎么可能的:/一手任何人?

1 个答案:

答案 0 :(得分:0)

这将使用元素&#34; name&#34;为所有元素(级别)提供数据下的所有节点。使用值&#34; world1Level20&#34;:

NSArray *nodes = [xmlDoc nodesForXPath:@"//*[contains(name,'world1Level20')]/data" error:nil];