Processamento de texto com o Programa Em vez de Perl
-
05-07-2019 - |
Pergunta
Eu tenho um arquivo .plist parecida com esta:
<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>
Eu quero adicionar mais informações ao plist como lema e apelido. Eles são neste formato:
<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>
Estou pensando em fazer alguma pesquisa e substituição para adicionar mais informações. Eu também poderia escrever um script Perl para ler os apelidos e adicioná-los para o plist.
Mas, há um programa de processamento de texto que permita-me a repetir os valores e inseri-las no local correto? Fui pesquisar através de texto processadores / editores e não consigo encontrar o que estou procurando.
Solução
que se parece com um trabalho para XSLT: xsltproc no Mac ou Linux. (Ou SAXÃO, que suporta XSLT 2.0)
[Você não mencionar como os apelidos no 2º arquivo de igualar-se para valores na primeira file: eles estão em sequência de correspondência? ]
Outras dicas
Em primeiro lugar, eu recomendo criar plist 1.1 que trata os seus pares de valores de nome como as entidades relacionadas que são, por exemplo:
<key name="capital" value="Montgomery" />
ou
<key>capital <value>Montgomery</value></key>
Parece-me que tê-los separar a maneira que você tem que fazer qualquer futuro tratamento que você quer fazer mais.
Você precisa de mais informações meta perto do apelido para você fazer a associação para o estado correto a menos que você quiser ser solicitado para cada inserção. tornando os apelidos como
<nickname state="AL">Yellowhammer State</nickname>
iria dar-lhe tudo que você precisa para inserir facilmente seus dados no local adequado em qualquer idioma.