[英]How to load, edit and save XML?
我想将一些XML数据加载到文本字段中; 我将编辑数据,然后,单击一个按钮,数据将另存为XML。
这是屏幕截图:
我的XML数据很简单; 例如:
<?xml version="1.0" encoding="utf-8"?>
<information>
<name>Lobby</name>
<location>1st floor</location>
</information>
首先,如果我选择一个组合框列表,则在文本字段中将加载XML数据,并且可以在文本字段中编辑XML数据。 然后,当我单击Update时 ,XML数据将被更改并保存。
我怎样才能做到这一点?
遍历XMLList项可能有点棘手,我建议使用for in循环(请参见随附的代码示例)作为下拉选项填充ArrayCollection
,然后在change事件上使用事件侦听器来解析和填充文本字段。
<?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:使用XML
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.