3

plistlib を使用して、OS X で単純な plist ファイルを作成および更新しています。ノルウェーのテスターが plistlib からエラーを受け取りました。

File "../axeomatic2/normal/build/pyi.darwin/aomDSP/out03-PYZ.pyz/plistlib", line 406, in parse
xml.parsers.expat.ExpatError: not well-formed (invalid token): line 1, column 8

彼のシステムで生成された plist ファイルを見ると、予想されるエントリが散在する次のようなフィールドが表示されます。

NSTableView Sort Ordering       Array
...
NSTableView Hidden Columns      Array
...
NSTableView Columns             Array
...
NSNavLastRootDirectory          Array

彼に自分のシステムから plist を渡すと問題なく動作しますが、プログラムがゼロから作成する必要があると判断すると、エラーが発生します。

おそらくエンコーディングの問題だと思いましたが、私たちは両方とも OS X 10.7 を使用しており、OS X バージョンの UTF-8 を使用しています。

何が起こっているのか、またはこれをリモートでトラブルシューティングする方法についてのアイデアはありますか?

4

3 に答える 3

3

以前も同様の問題がありましたが、biplistを試した後、解決しました。

于 2012-12-06T10:23:35.147 に答える
1

plistlibPython 3.4 以降、 バイナリ plist のサポートが追加されました。https://docs.python.org/3.4/library/plistlib.html

于 2014-09-01T04:55:39.403 に答える
0

実際には、plist形式には 2 つのカテゴリがあります。1 つは実際には単純な XML ファイル ( でplistlib解析する方法を知っているexpat) で、もう 1 つはbinary property list.

残念ながら、両者は同じ接尾辞 を共有しており.plist、Apple のすべてのツールはそれらを透過的に扱います (たとえば、 のようなツールを使用して、XML plist を操作しているのかバイナリ plist を操作しているのかわかりませんdefaults) 。

@northtreeが言ったように、biplistパッケージはバイナリplistファイルを読み書きするための適切なツールです。

アップデート:

plutil(1)また、OSX に付属のそれを使用して、任意のplistファイルを XML 形式に変換してから、plistlib

https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/plutil.1.html

于 2013-12-23T08:43:09.050 に答える