我的应用程序中有xml文件,我想将数据写入其中

时间:2011-12-31 22:49:00

标签: iphone objective-c xml-parsing

我有这个xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<Favorites>
    <favorite id="1">
        <title>My first favorite</title>
        <latitude>31.369834</latitude>
        <longitude>34.798207</longitude>
    </favorite>
</Favorites>

我想写更多“最喜欢的”。 我在项目中将所有需要的数据作为字符串。 但我无法弄清楚如何真正做到这一点 - 尽管我已经尝试了很多。

你可以帮我做一下吗? 感谢。

2 个答案:

答案 0 :(得分:0)

您可以使用plist并创建以下函数:

First - creates an array or dictionary from the plist
Second - adds new values to your array/dictionary 
Third - saves the dictionary to the same file, overwriting and updating the old version.

所以更确切地说插入值只是用更新的版本覆盖

答案 1 :(得分:0)

我同意响应者您应该考虑使用.plist文件。创建“收藏夹”对象的NSDictionary对象,并保存它们的数组。

但是,对于您的直接问题,您可以像这样保存表示XML的NSString(但同样,保存基于字符串的XML意味着您创建了大量的解析和交互方法):

// Build The Path
//
NSArray * paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, 
                                                      NSUserDomainMask, 
                                                      YES);

NSString * filePath = [paths objectAtIndex:0];

filePath = [filePath stringByAppendingPathComponent:@"favorites"];
filePath = [filePath stringByAppendingPathExtension:@"xml"];


// You Should Have A "Favorite" Objects That Know How To Desribe Themselves...
//
NSString * badWayToDoThis = @"<ThinkAboutUsingDictionaries>Saving The Data to a plist</seriously>";

[badWayToDoThis writeToFile:filePath 
                 atomically:YES 
                   encoding:NSUTF8StringEncoding 
                      error:NULL];

希望至少能让你走向前进的位置。