2013-12-03 3 views
1

Может ли кто-нибудь показать мне несколько простых в понимании руководств по изменению и обновлению внешнего XML-файла из ActionScript 3. Я изучал его уже давно, t нашел учебник, который я смог понять. Моя цель - создать действительно базовую базу данных. Скажем, базу данных контактов. Я хочу загрузить эти контакты через XML-файл. но я также хочу иметь возможность добавлять новые контакты и изменять существующие. Как мне это сделать?Изменение внешнего XML из AS3

Я хочу это в приложении AIR для настольных компьютеров.

ответ

1

Простая задача:

Первый, загрузите внешний XML. Ради примера, давайте представим себе XML быть этой структуры:

<contactData> 
    <contact firstName="John" lastName="Smith" phone="285-493-5421-793" email="[email protected]"/> 
    <contact firstName="Jane" lastName="Roberts" phone="285-493-5421-214" email="[email protected]"/> 
</contactData> 

Второй, разобрать, что XML. Для этого создайте тип объекта значения класса, назовем его ContactData. Это может выглядеть примерно так:

package 
{ 
    public class ContactData 
    { 
     public var firstName:String; 
     public var lastName:String; 
     public var email:String; 
     public var phone:String; 

     public var id:int; // always nice to store an ID 

    } 
} 

Loop через XML - для каждого узла contact создать объект класса КонтактныеДанного и заполнить его данные из XML. Храните массив с вашими объектами ContactData где-нибудь, и они понадобятся вам позже.

Третий, отредактируйте объект ContactData или удалите его из массива, если хотите. Добавление тоже не является проблемой.

Четвертой и, наконец, создать новый XML с AS3 и петлей через массив объектов КонтактныеДанного добавить contact узлов, а затем сохранить XML. Используйте классы File и FileStream, чтобы сохранить файл на жестком диске или URLLoader, чтобы передать его на сервер.

Это как примитивный код создания XML может выглядеть следующим образом:

var xml:XML = <contactData></contactData>; 

for (var i:int = 0; i < contactDataArray.length; i++) 
{ 
    var cd:ContactData = contactDataArray[i]; 

    xml.appendChild(<contact></contact>); 
    xml.contact[i][email protected] = cd.firstName; 
    xml.contact[i][email protected] = cd.lastName; 
    xml.contact[i][email protected] = cd.phone; 
    xml.contact[i][email protected] = cd.email; 
} 

Я надеюсь, что это полезно и легко понять. Удачи!

+1

Вы можете разобрать XML в экземпляр 'XML' и напрямую изменить этот экземпляр, добавив свойства, а затем вытащите еще одну строку из отредактированного объекта XML. – Vesper

+0

@Vesper, я знаю, но я предпочитаю этот метод по прямому редактированию XML - по-моему, он будет поддерживать масштабируемость программы. Также, если вы хотите показать данные на экране, проще использовать мой подход и позволить вашей среде IDE показать, какие переменные доступны. Помимо того, что у этой дополнительной мощности есть функции для форматирования ввода (например, сеттеры/приемники) и т. Д. Короче - ООП лучше imo. –

+1

Явно объявленные объекты классов/значений будут работать лучше в большем масштабе, чем редактирование динамических классов, таких как класс XML, на лету. В качестве дополнительной заметки вышеупомянутый узел XML может быть свернут в одной строке: 'xml.appendChild (); '(также в телефоне xample и электронной почте поменяются местами, но это всего лишь пример;)) –

Смежные вопросы