Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flash Приложения: AIR, Zinc и тд. (http://www.flasher.ru/forum/forumdisplay.php?f=94)
-   -   Изменение xml во время выполнения программы (http://www.flasher.ru/forum/showthread.php?t=182606)

andrew2312 28.07.2012 19:23

Изменение xml во время выполнения программы
 
Здравствуйте! Есть .xml файл в проекте ('assets/users.xml'). Можно ли во время выполнения программы его изменять? Пишу оффисное приложение. Хочу, чтобы как в Word, однажды заполнив поле "автор", не было необходимости его менять. Пользователь заполнил необходимые сведения, они сохранились в xml. При повторном открытии приложения сведения по-прежнему присутствуют.
Заранее спасибо.

caseyryan 28.07.2012 20:43

Можно. Но я бы лучше SQLite задействовал, раз уж приложение AIR

andrew2312 29.07.2012 16:53

Уважаемый caseyryan! Подскажите, пожалуйста, каким методом можно изменить xml, а затем сохранить его. Большое спасибо!

caseyryan 29.07.2012 17:30

Его прийдется загружать целиком, обрабатывать, а потом обработанный файл снова записывать.
Загрузить, например, простым URLLoader'ом
Код AS3:

var loader:URLLoader = new URLLoader(new URLRequest("settings.xml"));
loader.addEventListener(Event.COMPLETE, onSettingsLoad);
 
function onSettingsLoad(e:Event):void {
      e.target.removeEventListener(Event.COMPLETE, onSettingsLoad);
      var loadedXML:XML        = XML(e.target.data);
      // тут уже можно обрабатывать xml как надо, примеров в сети гора
}

А после составления нового XML с необходимыми настройками, записать его в файл:
Код AS3:

var settingString:String = "тут превращенный в строку xml с настройками";
var settings:File = File.applicationDirectory.resolvePath("settings.xml");
var fileStream:FileStream        = new FileStream();
fileStream.open(settings, FileMode.WRITE);
fileStream.writeUTFBytes(settingString);
fileStream.close();

Естественно это все в общем, для конкретного приложения все нужно будет подгонять.
п.с. Но я лично считаю этот способ не самым удачным. Все-таки для этой задачи лучше рассмотреть вариант с SQLite. По ней тоже примеров полно. Будет удобнее обновлять настройки или создавать новые

andrew2312 01.08.2012 11:09

Большое спасибо, caseyryan. С SQLite пока не работал. Поэтому сделал с помощью xml, который во время первого включения программы просто создаётся по адресу "app-storage:/Users.xml".
Ещё раз спасибо большое.


Часовой пояс GMT +4, время: 02:24.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.