从AS3内修改外部XML

时间:2013-12-03 06:55:11

标签: actionscript-3

任何人都可以向我展示一些如何从ActionScript 3中修改和更新外部XML文件的简单指南。我已经查了很长时间了,但还没找到我能够理解的教程。我的目标是创建一个真正基本的数据库..让我们说一个联系人数据库..我想通过xml文件加载这些联系人。但我也希望能够添加新的联系人并修改现有的联系人。我该怎么做?

我想在桌面AIR应用程序中使用它。

1 个答案:

答案 0 :(得分:2)

一项简单的任务:

首先,加载外部XML。为了举个例子,我们假设XML具有这种结构:

<contactData>
    <contact firstName="John" lastName="Smith" phone="285-493-5421-793" email="example@mail.com"/>
    <contact firstName="Jane" lastName="Roberts" phone="285-493-5421-214" email="example@gmail.com"/>
</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

    }
}

遍历XML - 为每个contact节点创建一个ContactData类对象,并从XML中填充数据。 将您的ContactData对象存储在某个数组中,稍后您将需要它们。

第三次,编辑ContactData对象,或者甚至将其从数组中删除。添加也不是问题。

第四,最后,使用AS3创建一个新的xml并循环遍历ContactData对象数组以添加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].@firstName = cd.firstName;
    xml.contact[i].@lastName = cd.lastName;
    xml.contact[i].@phone = cd.phone;
    xml.contact[i].@email = cd.email;
}

我希望它有用且易于理解。祝你好运!