Как написать XML с Objective-C и поместить его в объект NSData - PullRequest
0 голосов
/ 28 февраля 2012

Я читал кучу документов ios от Apple, и почти каждый бит кода, связанный с xml, требует либо создания файла с данными xml в нем, либо получения xml через соединение, а затем его изменения.

Я хотел бы знать, есть ли способ просто создать некоторый xml ... может быть в строке, а затем преобразовать его в объект NSData ... Я знаю, как передать NSString в объект NSData ... это не тактак много важного ... в настоящее время самая болезненная часть - это получить несколько четких кратких примеров того, как создать свой собственный xml без всего прочего, что, по словам Apple, вам нужно ... Т.е. файл или возврат данных.

В настоящее время у меня нет кода ... что я, скорее всего, сделаю, это создаю метод с некоторыми параметрами, который может получать некоторую информацию, а затем передавать их, чтобы, надеюсь, создать хороший объект xml string / data.

Ответы [ 3 ]

1 голос
/ 28 февраля 2012

Если вы имеете в виду преобразование объектов Какао в XML, есть множество библиотек, которые можно попробовать.Быстрый Google вывел WonderXML , я не использовал его раньше, но похоже, что это делает то, что вы хотите.

Если вам не нужен точный формат XML, вы всегда можетеиспользуйте NSKeyedArchiver или NSPropertyListSerialization (как пишет jtbandes), который может сериализовать практически любой объект Какао в XML.Я бы не рекомендовал такой подход, если вы собираетесь читать XML в какой-либо другой среде или на другом языке.

0 голосов
/ 28 февраля 2012

Вы можете использовать:

- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)flag

..., чтобы записать NSDictionary в .plist, который является документом XML с определенной схемой.Все содержащиеся в нем объекты должны быть экземплярами NSData, NSDate, NSNumber, NSString, NSArray или NSDictionary.

Используйте - (id)initWithContentsOfFile:(NSString *)path, чтобы прочитать XML / plist обратно в словарь.

Информационный файл проекта iOS является списком свойств / списком свойств.Они выглядят так при просмотре в текстовом редакторе:

<?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>CFBundleDevelopmentRegion</key>
    <string>English</string>
    <key>CFBundleDisplayName</key>
    <string>App Name</string>
    <key>CFBundleExecutable</key>
    <string>${EXECUTABLE_NAME}</string>
    <key>CFBundleIconFiles</key>
    <array>
        <string>Icon.png</string>
        <string>Icon@2x.png</string>
        <string>Icon-iPad.png</string>
        <string>Icon-Small-50.png</string>
        <string>Icon-Small.png</string>
        <string>Icon-Small@2x.png</string>
    </array>
</dict>
</plist>
0 голосов
/ 28 февраля 2012

Самым простым способом будет использование NSPropertyListSerialization . Передайте ему словарь (или любой объект списка свойств), и он может создавать XML (в виде строки или данных) в формате списка свойств Apple.

...