2010-06-11 44 views
1

问题是没有人知道卡布奇诺(类型2)plist文件的结构是什么?卡布奇诺plist结构

在卡布奇诺,有很多使用plist文件。

某些如info.plist(类型1)遵循一个可识别的结构。这些都很好,我可以理解他们。

<plist version="1.0"> 
<dict> 
<key>CPApplicationDelegateClass</key> 
<string>DocumentController</string> 
<key>CPBundleDocumentTypes</key> 
<array> 
<dict> ..... etc 

但是其用于数据导入,导入PPTX文件和幻灯片应用其他(2型),我相信阿特拉斯开发工具没有。

他们有这样

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

谢谢Alexander,Ross,真的很有帮助 – PurplePilot 2010-06-14 08:03:29

回答

4

我只能猜测Tumbleweed徽章是什么,但让我们看看我们是否可以避免这种情况。您正在查看的文件是'280 North格式Plist',这是一种专门用于卡布奇诺应用程序的plist特殊格式。如果您想深入研究,可以使用cplutil工具并将其转换为常规XML plist。

cplutil -convert xml1 -o Info3.plist Info1.plist 

尼斯全景有more info

3

要回答你关于plist实际结构的问题,它有点类似于netstrings(http://cr.yp.to/proto/netstrings.txt)。当然,内容与XML plist相同。

该格式以一个魔术字符串(和一个版本)开头,以标识读取的plist类型。接下来是几个plist类型(d-> dictionary,k-> key等)的常量,项目的长度,然后是项目本身。这些部分用分号分隔。

因此,如果我们看一下刚才在您发布什么第一部分:

280NPLIST;1.0;这告诉我们的格式,并认为这是版本1.0

D;的第一项是一本字典,它总是有一个键,然后该对象

K;4;$top在词典中的第一项是第一密钥,4

D;K;23;DocumentPresentationKey长度相关联的值是本身ð ictionary其第一个关键是23个字符长

格式的设计,使其更容易阅读文档的唯一部分,而无需解析整个的plist。