Обработка текста с помощью программы вместо Perl - PullRequest
1 голос
/ 11 сентября 2009

У меня есть файл .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>

Я хочу добавить к списку дополнительную информацию, такую ​​как девиз и никнейм. Они в этом формате:

<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-скрипт для чтения псевдонимов и добавления их в список.

Но есть ли программа обработки текста, которая позволила бы мне перебирать значения и вставлять их в нужное место? Я искал через текстовые процессоры / редакторы и не могу найти то, что я ищу.

Ответы [ 2 ]

1 голос
/ 11 сентября 2009

Это похоже на работу для XSLT: xsltproc на Mac или Linux. (или SAXON, который поддерживает XSLT 2.0)

[Вы не упоминаете, как совпадают псевдонимы во втором файле к значениям в первом файле: они в соответствующей последовательности? ]

0 голосов
/ 11 сентября 2009

Во-первых, я бы порекомендовал создать plist 1.1, который обрабатывает ваши пары значений имен как связанные сущности, например:

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

или

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

Мне кажется, что их разделение, как у вас, сделало бы любую будущую обработку, которую вы хотите сделать сложнее.

Вам нужно больше метаинформации рядом с псевдонимом, чтобы связать ее с правильным состоянием, если только вы не хотите получать подсказки для каждой вставки. делая прозвища как

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

даст вам все необходимое, чтобы легко вставить ваши данные в нужное место на любом языке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...