7

特别是,我正在为 CSSEdit 编辑 AutoCompletion.plist 文件(如果这很重要的话)。

我的问题是,是否有任何带有 STRING 元素的字符需要转义?空间?引号?

编辑:为了清楚起见,我没有使用 CSSEdit 来编辑文件——而是该文件是 CSSEdit 包的一部分。我正在使用 TextMate 来编辑文件(尽管“Property List Editor.app”是另一个选项)并且它是 XML 格式的。这是 AutoCompletion.plist 文件中的一个片段:

<?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 变得混乱

4

3 回答 3

19

如果您正在使用某种文本编辑器编辑 XML plist,则需要像在任何 XML 中一样转义字符。需要注意的基本字符是:

<(小于),转义为 <

>(大于),转义为 >

&(与号),转义为 &

'(撇号),转义为'

"(引号),转义为 "

所以在你的例子中,你会想要

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

您还可以使用 Apple 的 Property List Editor 等工具,该工具包含在他们的免费Xcode 开发人员工具中,或第三方产品(如PlistEdit Pro),它们都会为您处理所有字符转义。

于 2008-11-02T18:16:49.480 回答
2

您可以使用plutil来检查您的 plist 的语法。(请注意,这不会验证应用程序是否会理解您对其 plist 所做的事情......)

于 2008-11-02T18:36:03.543 回答
0

有 3 种类型的 plist,转义规则取决于您使用的类型。最常见的形式是 XML plist,它确实需要对某些内容进行转义。通常,您可以在字符串元素中使用 XML 转义规则。如果您正在使用较旧的 NextStep 样式 plist,我相信需要转义的内容要少得多,但我需要查看详细信息以确定规则是什么。第三种是二进制的,我很确定你没有用 CSSEdit 编辑它们。

于 2008-11-02T06:05:50.500 回答