0

我一直在阅读来自 Apple 的大量 ios 文档,几乎所有与 xml 相关的代码都需要创建一个包含 xml 数据的文件,或者通过连接接收 xml 然后对其进行更改。

我想知道是否有办法只创建一些 xml .. 可能在一个字符串中,然后将其转换为 NSData 对象.. 我知道如何将 NSString 传递给 NSData 对象.. 那不是那么多大不了.. 目前痛苦的部分是获得一些关于如何创建我自己的 xml 的清晰简洁的例子,而不需要 Apple 说你需要的所有其他东西.. 即文件或返回数据。

我目前没有代码.. 我可能会创建一个带有一些参数的方法,该方法可以接收一些信息,然后将它们传递给希望创建一个不错的 xml 字符串/数据对象。

4

3 回答 3

1

如果您指的是将 Cocoa 对象转换为 XML,则可以尝试许多库。一个快速的谷歌提出了WonderXML,我以前没有使用过它,但听起来这就是你想要的。

如果您不关心确切的 XML 格式,您总是可以使用NSKeyedArchiveror NSPropertyListSerialization(如 jtbandes 所写),它可以将大多数 Cocoa 对象序列化为 XML。如果您打算在其他环境或语言中阅读 XML,我不会推荐这种方法。

于 2012-02-28T01:19:29.450 回答
0

最简单的方法是使用NSPropertyListSerialization。将字典(或任何属性列表对象)传递给它,它可以生成 Apple 属性列表格式的 XML(作为字符串或数据)。

于 2012-02-28T01:16:45.877 回答
0

您可以使用:

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

...将 NSDictionary 写入 .plist,它是具有特定模式的 XML 文档。所有包含的对象都需要是 NSData、NSDate、NSNumber、NSString、NSArray 或 NSDictionary 的实例。

用于- (id)initWithContentsOfFile:(NSString *)path将 XML/plist 读回字典。

iOS 项目的 info 文件是一个属性列表/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>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>
于 2012-02-28T01:21:02.007 回答