将xml转换为plist

时间:2012-06-06 19:08:56

标签: ios xml xcode plist

我有一个XML文件,我必须将其转换为属性列表文件(plist)。我尝试了终端的“plutil”命令,但效果不好。我怎么转换? 非常感谢

1 个答案:

答案 0 :(得分:4)

我通过在excel中编写公式来为您创建plist文件的文本。它非常简单。

1)(可选)在XCode中,创建一个具有所需格式的plist。保存,然后在finder中找到它。在textWrangler或文本编辑中打开它,以便您可以看到plist中每个元素的标记。

例如,你应该找到类似的东西:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">

<dict>

    <key>First Key Name</key>
    <array>
        <string>Before God we are all equally wise</string>
        <string></string>
        <string>Albert Einstein</string>
        <integer>0</integer>
    </array>

    <key>Second Key Name</key>
    <array>
        <string>Do not worry about your troubles.</string>
        <string></string>
        <string>Albert Einstein</string>
        <integer>0</integer>
    </array>

</dict>
</plist>

2)我会假设: - 您的电子表格表示许多行/对象/级别的相同4个属性的描述 - 您将每个数组作为电子表格中的单独行 - 正在以相同的顺序为每一行描述相同的属性。 - 您将能够通过知道它们存储在哪个索引来访问数组中的项目。也就是说,我会通过查看索引2处的第二个数组来获得第二个作者。

您的电子表格应如下所示:

           A                B            C             D                E            F

     /--(Key Names)--\/-------------------(Properties of Each)-----------------\

1    Level Name      |   Quote        |  Notes  |   Author        |  Favorited  | 
     ____________________________________________________________________________
2    First Key Name  |  Before God... |         | Albert Einstein |      0      |
3    Second Key Name |  Do not wor... |         | Albert Einstein |      0      |
.
.
.

因此,我的每个对象都会在我的字典中获得自己的密钥,每个对象由3个字符串和一个整数描述。

3)公式

在我的电子表格的最后一栏的右侧,我将编写一个公式,为该行生成xml代码:

(F2) = CONCATENATE ("<key>",A2,"</key> <array> <string>",B2,"</string> <string>",C2,"</string> <string>",D2,"</string> <integer>",E2,"</integer> </array>")

将此单元格的右下角拖动到所有其他行,它们将自动填充每行的信息。

同样,在电子表格的底部,在所有行下,您可以使用另一个公式来连接行。假设你有300行:

(F4) = CONCATENATE (F2:F300) 

现在将此数据复制到文本文件中,并添加最后几个标签和doctype信息,您可以从上面复制这些信息。保存扩展名为.plist,你很高兴!将文件添加回xcode项目并像任何其他plist一样加载它。