【问题标题】:How to load, edit and save XML?如何加载、编辑和保存 XML?
【发布时间】:2013-06-04 04:28:34
【问题描述】:

我想将一些 XML 数据加载到文本字段中;我将编辑数据,然后,我想单击一个按钮,数据将保存为 XML。

截图如下:

我的 XML 数据很简单;例如:

<?xml version="1.0" encoding="utf-8"?>
<information>
    <name>Lobby</name>
    <location>1st floor</location> 
</information>

首先,如果我选择一个组合框列表,在文本字段中,将加载 XML 数据,我可以在文本字段中编辑 XML 数据。然后当我点击 Update 时,XML 数据将被更改并保存。

我该怎么做?

【问题讨论】:

    标签: xml actionscript-3 actionscript air


    【解决方案1】:

    遍历 XMLList 项目可能有点棘手,我建议使用 for in 循环(请参阅附加的代码示例)为下拉选项填充 ArrayCollection,然后在更改事件上使用事件侦听器来解析和填充文本场地。

    <?xml version="1.0" encoding="utf-8"?>
     <s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" creationComplete="init()"
                       xmlns:s="library://ns.adobe.com/flex/spark" 
                       xmlns:mx="library://ns.adobe.com/flex/mx">
    <fx:Script>
        <![CDATA[
            import mx.collections.ArrayCollection;
    
            import spark.events.IndexChangeEvent;
    
            [Bindable]private var ddList:ArrayCollection = new ArrayCollection();
            [Bindable]private var output:String = "";
            private var xbuilding:XMLList = new XMLList(
                <building>
                    <room>
                        <name>Lobby</name>
                        <location>Some Place</location>            
                    </room>
                    <room>
                        <name>Another Room</name>
                        <location>Some Other Place</location>              
                    </room>
                    <room>
                        <name>Yet Another Room</name>
                        <location>The Final Place</location>               
                    </room>
                </building>);
    
            protected function init():void
            {
                for each (var roomName:String in xbuilding.room.name){
                    ddList.addItem(roomName);
                }
            }
    
            protected function dropDown_changeHandler(event:IndexChangeEvent):void
            {
                output = "name :"+xbuilding.room[event.newIndex].name+"\nlocation: "+xbuilding.room[event.newIndex].location;
    
            }
    
        ]]>
    </fx:Script>
    <s:VGroup>
        <s:DropDownList dataProvider="{ddList}" change="dropDown_changeHandler(event)"/>
        <s:TextArea text="{output}" editable="false"/>
    </s:VGroup>
    </s:WindowedApplication>
    

    要编辑或更改 XML 数据,只需将其视为对象数组,确保正确解析输入

    xbuilding.room[selectedIndex] = new XMLList(newData)
    

    更多信息我推荐AS3Docs: Working with XML

    【讨论】:

    • @FarryGunawan ..如果这对您有用,请不要忘记投票作为答案..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-28
    • 2015-12-25
    • 1970-01-01
    • 2010-11-14
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    相关资源
    最近更新 更多