0

私はxcodeで作業しています。XML ファイルに変換してから Web データベースにアップロードしたいデータの NSArray があります。

配列は次のようにフォーマットされます。

555ttt Conor Brady testpass BC test Desc this is user timestamp this is location this is user location

以下に示すように、XMLファイルに変換したい:

<plates>
<plate>
<plateno>555ttt</plateno>
<user>Conor Brady</user>
<username>cbrady</username>
<password>testpass</password>
<province>BC</province>
<description>test desc</description>
<usertimestamp>this is user timestamp</usertimestamp>
<location>this is user location</location>
<status>this is user status</status>
</plate>
<plate>
<plateno>333yyy</plateno>
<user>C Brady</user>
<username>cbrady</username>
<password>testpass</password>
<province>BC</province>
<description>This is a test description</description>
<usertimestamp>this is user timestamp</usertimestamp>
<location>this is user location</location>
<status>this is user status</status>
</plate>
</plates>

なにか提案を?

4

1 に答える 1

0

配列内のデータから、生成するXML内のタグへのマッピングを作成する必要があります。これを行う最も簡単な方法は、XMLに追加するプレートごとに辞書を作成することです。このような何かがトリックを行う必要があります:

// Encode the data in an array of dictionaries
// Each dictionary has a key indentifying the XML tag
NSDictionary *plate1 = @{@"plateno" : @"555ttt", @"user" : @"Conor Brady", @"password" : @"testpass", @"province" : @"BC", @"description" : @"test desc", @"location" : @"this is user location"};
NSDictionary *plate2 = @{@"plateno" : @"333yyy", @"user" : @"C Brady", @"password" : @"testpass", @"province" : @"BC", @"description" : @"test desc", @"location" : @"this is user location"};
NSArray *platesData = @[plate1, plate2];

// Build the XML string
NSMutableString *xmlString = [NSMutableString string];

// Start the plates data
[xmlString appendString:@"<plates>"];

for (NSDictionary *plateDict in platesData) {
    // Start a plate entry
    [xmlString appendString:@"<plate>"];

    // Add all the keys (XML tags) and values to the string
    [plateDict enumerateKeysAndObjectsUsingBlock:^(id key, id value, BOOL *stop){
        [xmlString appendFormat:@"<%@>%@</%@>", key, value, key];
    }];

    // End a plate entry
    [xmlString appendString:@"</plate>"];
}

// End the plates data
[xmlString appendString:@"</plates>"];
于 2013-03-14T20:26:33.360 に答える