问题是有谁知道卡布奇诺的(类型2)plist文件的结构是什么?
在Cappuccino中,plist文件有很多用途。
一些如info.plist(type-1)遵循可识别的结构。这些都很好,我可以理解它们。
<plist version="1.0">
<dict>
<key>CPApplicationDelegateClass</key>
<string>DocumentController</string>
<key>CPBundleDocumentTypes</key>
<array>
<dict> ..... etc
然而,其他(类型2)用于导入数据,从幻灯片应用程序导入pptx文件,我相信Atlas的开发工具没有。
他们有这样的结构
280NPLIST;1.0;D;K;4;$topD;K;23;DocumentPresentationKeyD;K;6;CP$UIDd;1;1E;E;K;8;$objectsA;S;5;$nullD;K;6;$classD;K;6;CP$UIDd;1;2E;K;23;SKPresentationSlideSizeD;K;6;CP$UIDd;1;3E;K;23;SKPresentationNotesSizeD;K;6;CP$UIDd;1;4E;K;20;SKPresentationSlidesD;K;6;CP$UIDd;1;5E;K;26;SKPresentationSlideMastersD;K;6;CP$UIDd;1;7E;K;19;SKPresentationThemeD;K;6;CP$UIDd;1;8E;E;D;K;10;$classnameS;14;
无论大小如何,这似乎都出现在单行上(我现在有一个超过130万个字符。
一些结构与字符计数有关,但我看起来像失败的有效文件和看起来可疑的文件没有。
我怀疑我刚刚问了一个Tumbleweed徽章问题,但是因为我已经有了问题并不重要。
答案 0 :(得分:4)
我只能猜出风滚草徽章是什么,但让我们看看我们是否可以避免这种情况。您正在查看的文件是'280 North format Plist',这是一种针对Cappuccino应用程序优化的plist特殊格式。如果您想深入了解它,可以使用cplutil
工具并将其转换为常规XML plist。
cplutil -convert xml1 -o Info3.plist Info1.plist
Nice Panorama有more info。
答案 1 :(得分:3)
要回答关于plist实际结构的问题,它有点类似于netstrings(http://cr.yp.to/proto/netstrings.txt)。当然,内容与XML plist相同。
格式以魔术字符串(和版本)开头,以识别用于阅读的plist类型。然后是几个plist类型的常量(d->字典,k-&gt;键等),项目的长度,然后是项目本身。这些部分是以分号分隔的。
因此,如果我们只关注您发布的内容的第一部分:
280NPLIST;1.0;
这告诉我们格式,这是版本1.0
D;
第一个条目是一个字典,它总是有一个键然后是对象
K;4;$top
字典中的第一项是第一个键,长度为4
D;K;23;DocumentPresentationKey
关联值本身是第一个键长度为23个字符的字典
等
该格式旨在简化只读取部分文档的过程,而无需解析整个plist。