将列表对象转换为嵌入在NSString中的XML

时间:2014-04-15 17:33:45

标签: ios xml text nsstring plist

我想通过电子邮件以XML测试格式发送plist对象。

在这之后我应该写什么样的代码(最好是简单的):

NSString *xmlString;
NSDictionary *borrowed = @{@"Reader": @"Ryan Shaw",
                           @"Books":  @[ @{@"Title":  @"The Godfather",
                                           @"Author": @"Mario Puzo",
                                           @"Date":   @"2014-04-08T13:36:33Z"},
                                         @{@"Title":  @"Adventures of Huckleberry Finn",
                                           @"Author": @"Mark Twain",
                                           @"Date":   @"2014-04-08T13:36:33Z"} ]
                         };

结果xmlString包含以下值:

@"<dict>
    <key>Reader</key>
    <string>Ryan Shaw</string>
    <key>Books</key>
    <array>
        <dict>
            <key>Title</key>
            <string>The Godfather</string>
            <key>Author</key>
            <string>Mario Puzo</string>
            <key>Date</key>
            <date>2014-04-08T13:36:33Z</date>
        </dict>
        <dict>
            <key>Title</key>
            <string>Adventures of Huckleberry Finn</string>
            <key>Author</key>
            <string>Mark Twain</string>
            <key>Date</key>
            <date>2014-04-08T13:36:33Z</date>
        </dict>
    </array>
</dict>"

是否有任何iOS框架能够执行此操作,或者我应该自己编写解析器还是使用第三方库?

1 个答案:

答案 0 :(得分:0)

缺少的代码如下:

    NSError *error;
    NSData *xmlData = [NSPropertyListSerialization dataWithPropertyList:borrowed
                                                                 format:NSPropertyListXMLFormat_v1_0
                                                                options:0
                                                                  error:&error];
    if ( !error )
        xmlString = [[NSString alloc] initWithData:xmlData encoding:NSUTF8StringEncoding];

不需要链接任何特殊框架。