Реализация списка свойств (plist) в C++

Мне поручено читать файлы списков свойств Apple в приложении C++. Фокусируясь в основном на списочных файлах типа xml, указанных в OS X, которые имитируют реализацию типа xml. Реализация Apple списка их свойств описана здесь:

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

Мне интересно, есть ли доступные классы или библиотеки, которые уже могут читать этот тип реализации в рамках стандартного C++ (не Objective-C); в надежде найти что-то, а не кататься на своих. Есть ли какие-либо реализации с открытым исходным кодом этого доступны?

2 ответа

Решение

Файлы PList не только имитируют XML, но и представляют собой XML, включая действительные заголовки XML.

Любой читатель XML должен иметь возможность анализировать эти файлы в результате. Если вы ищете логический класс, который абстрагирует файлы, я не знаю ни одного из существующих. Учитывая документацию Apple, вы сможете написать ее самостоятельно с помощью программы чтения XML, хотя для полной совместимости потребуется некоторая работа.

Я знаю, что для начинающих уже поздно, но, может быть, это кому-то поможет

https://github.com/animetrics/PlistCpp

Это библиотека сериализации списка свойств C++ (plist) (лицензия MIT). Он поддерживает как XML, так и двоичные версии формата plist и предназначен для кроссплатформенности с минимальными зависимостями.

Это конкретная цель?

Для Windows существует грубое решение, которое состоит в использовании функций динамических библиотек iTunes для анализа plist-файлов (работа в двоичном или обычном текстовом формате).

Это код, изначально написанный для интерфейса iPod, но вы можете легко извлечь несколько интересующих вас функций.

Репозиторий находится на этой странице проекта: http://code.google.com/p/t-pot/

Найдите файл iPoTApi.h и iPoTApi.cpp, функцию TranslatePLIST класса CiPoTApi,

Хотелось бы, чтобы было лучшее решение, в то время, когда я пытался скомпилировать его из источников Apple, нацеленных на Windows, но это настоящий кошмар, а файлы отсутствуют. Таким образом, использование их библиотек было значительным сокращением.

Другие вопросы по тегам