2012-06-06 2 views
2

У меня есть XML-файл, и я должен преобразовать его в файл списка свойств (plist). Я попробовал команду «plutil» с терминала, но это не работает. Как я могу конвертировать? Большое спасибоПреобразование xml в plist

+0

Какой файл XML? – Robert

+0

Вам нужен инструмент для использования в Mac? –

+0

Да инструмент, спасибо – Vins

ответ

4

Я достиг этого, написав формулу в excel, чтобы создать текст файла plist для вас. Это довольно легко.

1) (факультативно) В XCode создайте слой, который имеет нужное форматирование в конце. Сохраните и перейдите к этому в поисках. Откройте его в textWrangler или в текстовом редакторе, чтобы вы могли видеть, что теги для каждого элемента вашего plist.

Например, вы должны найти что-то вроде:

<?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"> 
<plist version="1.0"> 

<dict> 

    <key>First Key Name</key> 
    <array> 
     <string>Before God we are all equally wise</string> 
     <string></string> 
     <string>Albert Einstein</string> 
     <integer>0</integer> 
    </array> 

    <key>Second Key Name</key> 
    <array> 
     <string>Do not worry about your troubles.</string> 
     <string></string> 
     <string>Albert Einstein</string> 
     <integer>0</integer> 
    </array> 

</dict> 
</plist> 

2) Я буду считать: - Ваша таблица представляет собой описание одного и того же 4 свойства для многих строк/объектов/Levels - You каждый массив представляет собой отдельную строку в вашей таблице. . Те же свойства описываются для каждой строки в том же порядке. - Вы сможете получить доступ к элементам в массиве, зная, в каком индексе они хранятся. то есть, я хотел бы получить второй автор, посмотрев во второй массив с индексом 2.

Ваша таблица должна выглядеть следующим образом:

  A    B   C    D    E   F 

    /--(Key Names)--\/-------------------(Properties of Each)-----------------\ 

1 Level Name  | Quote  | Notes | Author  | Favorited | 
    ____________________________________________________________________________ 
2 First Key Name | Before God... |   | Albert Einstein |  0  | 
3 Second Key Name | Do not wor... |   | Albert Einstein |  0  | 
. 
. 
. 

Таким образом, каждый из моих объектов получит свой собственный ключ в моем словаре и каждый объект описывается тремя строками и целым числом.

3) Формула

На справа от последнего столбца в свою таблицу, напишу формулу, которая генерирует код XML для этой строки:

(F2) = CONCATENATE ("<key>",A2,"</key> <array> <string>",B2,"</string> <string>",C2,"</string> <string>",D2,"</string> <integer>",E2,"</integer> </array>") 

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

Аналогично, в нижней части таблицы под всеми строками вы можете использовать другую формулу для объединения строк. Скажем, у вас было 300 строк:

(F4) = CONCATENATE (F2:F300) 

Теперь скопируйте эти данные в текстовый файл и добавить последние несколько тегов и DOCTYPE информацию, которую можно скопировать из выше. сохранить с расширением .plist, и вам хорошо идти! Добавьте файл обратно в свой проект xcode и загрузите его, как и любой другой plist.

+0

очень-очень приятно! – Vins

+2

Рад, что я мог помочь. Я долго искал хорошее решение, поэтому я решил поделиться своими результатами! – bkbeachlabs

+1

Я использовал метод Excel, как описано bkbeachlabs. Отлично! Я использую Excel 2011 для Mac и для формулы CONCATENATE, мне пришлось изменить символ разделителя между полем от запятой (,) до точки с запятой (;).Поэтому, когда кто-то пробует это в Excel 2011, используйте это :-) –

Смежные вопросы