1

我有一个看起来像这样的 .plist 文件:

<plist version="1.0">
<array>
<dict>
    <key>name</key>
    <string>Alabama</string>
    <key>abreviation</key>
    <string>AL</string>
    <key>date</key>
    <string>1819</string>
    <key>population</key>
    <string>4,627,851</string>
    <key>capital</key>
    <string>Montgomery</string>
    <key>largestCity</key>
    <string>Birmingham</string>
</dict>
....
</array>
</plist>

我想向 plist 添加更多信息,例如座右铭和昵称。它们采用以下格式:

<nickname>Yellowhammer State</nickname>
<nickname>The Last Frontier</nickname>
<nickname>The Grand Canyon State</nickname>
<nickname>The Natural State</nickname>
<nickname>The Golden State</nickname>
<nickname>The Centennial State</nickname>
<nickname>The Constitution State</nickname>
<nickname>The First State</nickname>
<nickname>The Sunshine State</nickname>

我正在考虑进行一些搜索和替换以添加更多信息。我还可以编写一个 perl 脚本来读取昵称并将它们添加到 plist 中。

但是,是否有一个文本处理程序可以让我遍历这些值并将它们插入到正确的位置?我一直在搜索文本处理器/编辑器,但找不到我要找的东西。

4

2 回答 2

1

这看起来像是 XSLT 的工作:Mac 或 Linux 上的 xsltproc。(或支持 XSLT 2.0 的 SAXON)

[您没有提到第二个文件中的昵称如何与第一个文件中的值匹配:它们是否在匹配序列中?]

于 2009-09-11T16:57:10.747 回答
0

首先,我建议创建 plist 1.1,将您的名称值对视为相关实体,例如:

<key name="capital" value="Montgomery" />

或者

<key>capital <value>Montgomery</value></key>

在我看来,让它们以你现有的方式分开会使你想要做的任何未来处理变得更加困难。

您需要在昵称附近提供更多元信息,以便将关联关联到正确的状态,除非您希望在每次插入时都收到提示。使昵称像

<nickname state="AL">Yellowhammer State</nickname>

将为您提供所需的一切,以任何语言轻松地将数据插入到适当的位置。

于 2009-09-11T15:47:57.680 回答