2013-06-07 3 views
1

Я хотел бы загрузить некоторые XML-данные в текстовые поля; Я отредактирую данные, и после этого я хочу нажать кнопку, и данные будут сохранены как XML.Как загрузить, отредактировать и сохранить XML?

Вот скриншот:

Мои данные XML прост; например:

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

Во-первых, если я выбираю список полей со списком в текстовом поле, данные XML будут загружены, и я могу редактировать данные XML в текстовом поле. Затем, когда я нажимаю Обновление, данные XML будут изменены и сохранены.

Как я могу это сделать?

ответ

0

Перемещение элементов XMLList может быть немного сложным, я рекомендую заполнить ArrayCollection с помощью цикла for for (см. Пример кода) для раскрывающихся опций, а затем с помощью прослушивателя событий в событии изменения разобрать и заполнить текстовое поле ,

<?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

+0

благодаря cyanANgel я буду, попробуйте это –

+0

@FarryGunawan .. не забудьте проголосовать за это как ответ, если это сработало для вас .. – matzone

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