Apple Plist конвертируется в структуры данных Java - PullRequest
3 голосов
/ 13 мая 2011

У меня есть программа, которая будет получать информацию, отображаемую в ней, из списка .plist на моем сервере.Тем не менее, я собираюсь сделать это для ПК, и я использую Java для этого.Файлы Plist не являются обычным XML, поэтому обычные библиотеки синтаксического анализа XML не работают.Я не могу найти парсеры для конкретного списка, так что я теряюсь, как продолжить.Я вижу это так:

a) Найдите такой синтаксический анализатор для файла plist

b) Сделайте обходной путь, используя обычный синтаксический анализатор XML

c) Изменитьфайл, из которого программа получает свои данные (нежелательно)

Кто-нибудь еще имел опыт работы со списками на других языках, кроме Objective-C?

Ответы [ 2 ]

3 голосов
/ 13 мая 2011

Для устранения путаницы:

  1. Файл plist может быть в формате XML или в двоичном виде.
  2. Бинарный список, конечно, не XML.
  3. XML-список, конечно, XML. На самом деле это действительный XML ... попробуйте xmllint против XML plist.
  4. Да, имеет немного нетрадиционную структуру. Как вы говорите, это как <dt>title</dt><dd>description</dd>.
  5. Вы можете преобразовать двоичный список в XML-список, используя plutil в OS X. Преобразовать его в XML перед отправкой по сети.
  6. С обычным парсером XML вы можете получить key и string. Сделайте хеш, содержащий эти пары. Затем вы получите строку, основанную на ключе.
3 голосов
/ 13 мая 2011

Как отмечает @Jochen Bedersdorfer, файлы .plist представляют собой XML с правильно сформированным DTD .Используйте plutil, чтобы преобразовать их из двоичного в текстовую форму.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" 
    "http://www.apple.com/DTDs/PropertyList-1.0.dtd">

Приложение: В комментарии вы спросили

Разве это не текст?форма, когда я получу это?

Не обязательно.Вот немного история на эту тему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...