我一直在阅读来自Apple的大量ios文档,几乎所有与xml相关的代码都需要在其中创建一个包含xml数据的文件,或者通过连接接收xml然后更改它。
我想知道是否有一种方法可以只创建一些xml ..也许在一个字符串中,然后将其转换为NSData对象..我知道如何将NSString传递给NSData对象..那不是那么非常重要..目前痛苦的部分是如何创建我自己的xml而没有Apple说你需要的所有其他东西的简明例子......即归档或返回数据。
我目前没有代码..我可能会做的是创建一个带有一些参数的方法,这些参数可以接收一些信息,然后将它们传递给希望创建一个漂亮的xml字符串/数据对象。
答案 0 :(得分:1)
如果您指的是将Cocoa对象转换为XML,则需要尝试许多库。一个快速谷歌提出WonderXML,我之前没有使用它,但听起来这就是你想要的。
如果您不关心确切的XML格式,您可以始终使用NSKeyedArchiver
或NSPropertyListSerialization
(作为jtbandes写入),它可以将大多数Cocoa对象序列化为XML。如果您打算在其他环境或语言中阅读XML,我不会推荐这种方法。
答案 1 :(得分:0)
最简单的方法是使用NSPropertyListSerialization。将它传递给字典(或任何属性列表对象),它可以以Apple的属性列表格式生成XML(作为字符串或数据)。
答案 2 :(得分:0)
您可以使用:
- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)flag
...将NSDictionary写入.plist,这是一个具有特定模式的XML文档。所有包含的对象都需要是NSData,NSDate,NSNumber,NSString,NSArray或NSDictionary的实例。
使用- (id)initWithContentsOfFile:(NSString *)path
将XML / plist读回字典。
iOS项目的信息文件是属性列表/ 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>