Pregunta

Tengo un archivo .plist que se ve así:

<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>

Quiero agregar más información a la lista, como lema y apodo. Están en este 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>

Estoy considerando realizar una búsqueda y reemplazo para agregar más información. También podría escribir un script en perl para leer los apodos y agregarlos al plist.

Pero, ¿hay un programa de procesamiento de texto que me permita recorrer los valores e insertarlos en el lugar correcto? He estado buscando a través de procesadores de texto / editores y no puedo encontrar lo que estoy buscando.

¿Fue útil?

Solución

Parece un trabajo para XSLT: xsltproc en Mac o Linux. (o SAXON, que admite XSLT 2.0)

[No mencionas cómo se combinan los apodos en el segundo archivo a los valores en el primer archivo: ¿están en una secuencia coincidente? ]

Otros consejos

Primero, recomendaría crear plist 1.1 que trate los pares de valores de nombre como las entidades relacionadas que son, por ejemplo:

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

o

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

Me parece que tenerlos separados de la forma en que lo haces podría dificultar cualquier procesamiento futuro que quieras hacer.

Necesitas más información de metadatos cerca del apodo para que puedas realizar la asociación al estado correcto a menos que quieras que se te solicite cada inserción. haciendo los apodos como

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

le dará todo lo que necesita para insertar fácilmente sus datos en el lugar adecuado en cualquier idioma.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top