سؤال

ولدي ملف .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>

وأنا أفكر في القيام ببعض البحث والاستبدال لإضافة مزيد من المعلومات. أنا يمكن أيضا كتابة السيناريو بيرل لقراءة الأسماء المستعارة وإضافتها إلى قائمة خصائص.

ولكن، هناك برنامج معالجة النصوص التي من شأنها أن تسمح لي أن أعاد على القيم وإدراجها في المكان الصحيح؟ لقد تم البحث خلال النص المعالجات / المحررين ولا يمكن العثور على ما أنا أبحث عن.

هل كانت مفيدة؟

المحلول

وهذا يبدو وكأنه عمل للXSLT: xsltproc على ماك أو لينكس. (أو SAXON، الذي يدعم XSLT 2.0)

[لا أذكر كيف ألقاب في ملف 2ND تطابق تصل على القيم في الملف الأول: هل هي في مطابقة تسلسل؟ ]

نصائح أخرى

أولا، أود أن أوصي خلق PLIST 1.1 التي يعامل ك أزواج قيمة اسم مثل الكيانات ذات الصلة التي هي، على سبيل المثال:

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

أو

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

ويبدو لي أن وجود لهم فصل الطريقة يكون لديك شأنه أن يجعل أية معالجة في المستقبل تريد أن تفعل أكثر صعوبة.

وأنت بحاجة إلى معلومات أكثر ميتا بالقرب من لقب لجعل لكم الجمعية إلى الحالة الصحيحة إلا إذا كنت تريد أن تتم مطالبتك لكل الإدراج. جعل الأسماء المستعارة مثل

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

وسوف تعطيك كل ما تحتاجه لبسهولة إدراج البيانات الخاصة بك في المكان المناسب في أي لغة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top