4 Stimmen

implementierung der eigenschaftsliste (plist) von apple in c++

Ich bin mit dem Lesen von Apples Eigenschaftslistendateien innerhalb einer C++-Anwendung beauftragt. Dabei konzentriere ich mich in erster Linie auf die in OS X spezifizierten xml-artigen plist-Dateien, die eine xml-artige Implementierung nachahmen. Apples Implementierung der Eigenschaftsliste wird hier beschrieben:

http://developer.apple.com/mac/library/documentation/Darwin/Reference/ManPages/man5/plist.5.html

Ich frage mich, ob es Klassen oder Bibliotheken zur Verfügung, die bereits diese Art der Implementierung innerhalb von Standard-C++ (nicht Objective-C) lesen können; in der Hoffnung, etwas zu finden, anstatt unsere eigene zu rollen. Gibt es irgendwelche Open-Source-Implementierungen von diesem verfügbar?

0 Stimmen

Arbeiten Sie in einer OS X-Umgebung? Können Sie eine C++/Obj-C-Bridge verwenden, um die nativen APIs für den Zugriff auf die plist-Datei aufzurufen? Ansonsten würde ich Xerces verwenden und die Datei als XML parsen.

0 Stimmen

stackoverflow.com/questions/1061005/ hat einige Informationen darüber, wie man Obj-C von C++ aus aufruft

0 Stimmen

github.com/animetrics/PlistCpp Dies sieht wie ein neuer und ziemlich schöner Anwärter aus.

1voto

Will Eddins Punkte 13220

PList-Dateien ahmen nicht nur XML nach, sie sind XML, einschließlich gültiger XML-Kopfzeilen.

Jeder XML-Reader sollte in der Lage sein, diese Dateien zu parsen. Wenn Sie nach einer logischen Klasse suchen, die die Dateien abstrahiert, sind mir keine existierenden bekannt. Angesichts der Apple-Dokumentation, sollten Sie in der Lage sein, eine selbst mit einem XML-Reader zu schreiben, obwohl es einige Arbeit für volle Kompatibilität nehmen würde.

0 Stimmen

Externe DLLs waren keine Option. Es wurde jedoch validiert, und wir konnten TinyXml verwenden, um die Plist-Datei zu analysieren und die Schlüssel/Wertpaare manuell in eine Datenstruktur zu übertragen.

1voto

RedGlyph Punkte 10889

Ist das zielgruppenspezifisch?

Für Windows gibt es eine grobe Lösung, die darin besteht, die Funktionen der dynamischen iTunes-Bibliotheken zu nutzen, um plist-Dateien zu analysieren (entweder im Binär- oder im reinen Textformat).

Das ist ein Code, der ursprünglich für die Schnittstelle eines iPods geschrieben wurde, aber Sie können die wenigen Funktionen, die Sie interessieren, leicht extrahieren.

Das Repository befindet sich auf dieser Projektseite: http://code.google.com/p/t-pot/

Suchen Sie die Datei iPoTApi.h und iPoTApi.cpp, die Funktion TranslatePLIST der Klasse CiPoTApi .

Ich wünschte, es gäbe eine bessere Lösung. Damals habe ich versucht, es aus Apples Quellen für Windows zu kompilieren, aber das ist ein echter Albtraum, und es fehlen Dateien. So mit ihren Bibliotheken war eine erhebliche Abkürzung.

1voto

sergey aksenov Punkte 11

Für Themenstarter ist es zu spät, ich weiß, aber vielleicht hilft es jemandem

https://github.com/animetrics/PlistCpp

Dies ist eine C++ Property List (plist) Serialisierungsbibliothek (MIT-Lizenz). Sie unterstützt sowohl XML- als auch Binärversionen des plist-Formats und ist so konzipiert, dass sie plattformübergreifend mit minimalen Abhängigkeiten zu sein.

0 Stimmen

Lässt sich nicht für Mac kompilieren

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X