سؤال

على وجه الخصوص ، أقوم بتحرير ملف الإكمال التلقائي.

سؤالي هو ، هل هناك أي أحرف تضم عناصر السلسلة التي يجب الهروب منها؟ المساحات؟ يقتبس؟

تحرير: فقط لأكون واضحًا ، أنا لا أستخدم CSSEDIT لتحرير الملف - بل هو جزء من حزمة CSSEDIT. أنا أستخدم TextMate لتحرير الملف (على الرغم من أن "محرر قائمة الخصائص" هو خيار آخر) وهو بتنسيق XML. إليك مقتطف من ملف الإكمال التلقائي.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>font-family</key>
<array>
    <string>Arial</string>
    <string>Helvetica</string>
    <string>Georgia</string>
    <string>serif</string>
    <string>sans-serif</string>
    <string>cursive</string>
    etc...

أرغب في إضافة سلاسل مع مسافات واقتباسات واحدة مثل:

<string>Georgia, Times, 'Times New Roman', serif</string>

لكن CSSEDIT يذهب haywire عندما أقوم بتحرير الملف على هذا النحو

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

المحلول

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

<(أقل من) ، هرب كـ <

> (أكبر من) ، هرب كما>

& (Ampersand) ، هرب As &

"(apostraphe) ، هرب كما"

"(علامة اقتباس) ، هرب كما"

لذلك في مثالك ، تريد

<string>Georgia, Times, &apos;Times New Roman&apos;, serif</string>

يمكنك أيضًا استخدام أداة مثل محرر قائمة برامج Apple ، والتي يتم تضمينها مع مجاني أدوات مطور Xcode, أو منتج طرف ثالث مثل Plistedit Pro, ، وكلاهما سيهتم بكل الشخصية التي تهرب من أجلك.

نصائح أخرى

يمكنك استخدام plutil للتحقق من بناء جملة السليفيك. (لاحظ أن هذا لن يتحقق من صحة ما إذا كان التطبيق سيفهم ما فعلته إلى Plist ...)

هناك 3 أنواع من السكر ، والقواعد الهاربة تعتمد على النوع الذي تعمل معه. الشكل الأكثر شيوعًا هو XML Plists ، والتي تتطلب الهروب من أشياء معينة. بشكل عام ، يمكنك استخدام قواعد الهروب من XML داخل عناصر السلسلة. إذا كنت تعمل مع Plists الأقدم من NextStep ، أعتقد أنه يجب الابتكار أقل بكثير ، لكنني بحاجة إلى البحث عن التفاصيل لتكون متأكدة من القواعد. النوع الثالث هو ثنائي ، أنا واثق تمامًا من أنك لا تقوم بتحرير أولئك الذين يعانون من CSSEDIT.

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