编辑.plist文件 - 是否允许作为字符串使用单引号?
题
特别是,我正在为CSSEdit编辑AutoCompletion.plist文件(如果这甚至很重要)。
我的问题是,是否有任何需要转义STRING元素的角色?空间?报价?
编辑: 为了清楚起见,我没有使用CSSEdit来编辑文件 - 而是文件是CSSEdit包的一部分。我正在使用TextMate编辑文件(尽管<!>“属性列表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,例如:
<string>Georgia, Times, 'Times New Roman', serif</string>
但是当我编辑文件
时,CSSEdit变得混乱解决方案
如果您使用某种文本编辑器编辑XML plist,则需要像在任何XML中一样转义字符。要注意的基本字符是:
LT <!>; (小于),以<!> amp; lt;
转义GT <!>; (大于),以<!> amp; gt;
转义 <!>安培; (&符号),以<!> amp; amp;
逃脱'(tratraphe),以<!> amp;';
逃脱 <!>QUOT; (引号),转义为<!> amp; quot;
所以在你的例子中,你想要
<string>Georgia, Times, 'Times New Roman', serif</string>
您还可以使用Apple的Property List Editor等工具,该工具包含在免费的 Xcode中开发人员工具,或 PlistEdit Pro 等第三方产品,两者都将负责所有为你逃脱的角色。
其他提示
您可以使用plutil
检查plist的语法。 (请注意,这不会验证应用程序是否会理解您对其plist所做的操作...)
有三种类型的plists,转义规则取决于您正在使用的类型。最常见的形式是XML plists,它确实需要转义某些内容。通常,您可以在字符串元素中使用XML转义规则。如果您正在使用较旧的NextStep样式的plist,我相信更少需要转义,但我需要查找详细信息以确定规则是什么。第三种类型是二进制,我非常有信心你没有用CSSEdit编辑那些。