0

この構造の xml(kml) があります。

<Document>
<Folder>
    <Folder>
        <name>A -</name>
        <Placemark>
            <name>Afghanistan</name>
            <description></description>
            <Style>
                <PolyStyle>
                    <color>aaffffff</color>
                    <colorMode>random</colorMode>
                </PolyStyle>
            </Style>
            <Polygon>
                <outerBoundaryIs>
                    <LinearRing>
                        <coordinates> 65.62729644775391,37.33319854736328,0 65.64692687988283,37.45888137817383,0</coordinates>
                    </LinearRing>
                </outerBoundaryIs>
            </Polygon>
        </Placemark>
        <Placemark>
            <name>Albania</name>

各国の名前とその座標を取得して配列に保存しようとしています。これにより、elementValue の「Placemark」と urlValue の「null」が得られます。

if ([elementName isEqualToString:@"Placemark"]){
    NSString *urlValue=[attributeDict valueForKey:@"name"];

    NSLog(@"I just found a start tag for %@ %@",elementName,urlValue);

}

他のデリゲートを使用する必要がありますか? ここで何が間違っていますか?

4

1 に答える 1

1

<name>は の属性ではなく、<Placemark>子要素です。parser:didStartElement:...フラグまたはそのようなメソッドを設定し、パーサーが「name」を elementName としてデリゲートを再度呼び出すのを待つ必要があります。parser:didEndElement:...次の反復に備えて「目印」に到達したら、フラグを再びオフにすることができます。

于 2013-02-10T22:41:11.570 に答える