向Tree空间添加删除XML数据节点_Flex4

本文介绍了一个基于Flex4的示例应用,通过HttpService从XML文件加载数据,并使用Tree组件展示。用户可以交互式地添加和删除节点。文章提供了完整的MXML代码和XML数据文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Flex4控件例程: 基于HttpService的运用向Tree空间中添加和删除XML数据格式的节点操作

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
<s:layout>
<s:VerticalLayout verticalAlign="middle" horizontalAlign="center"/>
</s:layout>
<fx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.events.FlexEvent;
import mx.rpc.events.ResultEvent;

protected function http_resultHandler(event:ResultEvent):void
{
var result:XML = event.result as XML ;
tree.dataProvider = result ;
trace(result) ;
}


protected function addNode():void
{
// TODO Auto-generated method stub
var xml:XML = tree.selectedItem as XML ;
if(xml.length()>0){
var newNode:XML = <node /> ;
newNode.@value=addItem.text ;
xml.appendChild(newNode) ;
}
addItem.text = "" ;

}
protected function delNode():void
{
if(!tree.selectedItem.hasOwnProperty("CD")){
tree.dataDescriptor.removeChildAt(tree.selectedItem.parent(),tree.selectedItem,tree.selectedItem.childIndex(),tree.dataProvider);
}else{
Alert.show("不能删除根节点","系统提示");
}

}

]]>
</fx:Script>
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
<!--<fx:XML source="data/cd.xml" format="e4x" id="data"/>-->
<s:HTTPService id="http" url="data/cd.xml" resultFormat="e4x" result="http_resultHandler(event)"/>
</fx:Declarations>
<mx:Tree id="tree" labelField="@value" width="300" height="400"></mx:Tree>
<s:Group width="304" height="27">
<s:TextInput id ="addItem" x="0" y="5" height="100%" width="100"/>
<s:Button x="118" y="2" label="增加节点" enabled="{addItem.text!=''?true:false}" click="addNode()"/>
<s:Button x="224" y="2" label="删除节点" enabled="{tree.selectedIndex==-1?false:true}" click="delNode()"/>
</s:Group>
</s:Application>



XML文件:
cd.xml

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!-- Edited with XML Spy v2007 (http://www.altova.com)
-->
<CDS value="Root">
<CD value="CD1">
<TITLE value="TITLE">Empire Burlesque</TITLE>
<ARTIST value="ARTIST">Bob Dylan</ARTIST>
<COUNTRY value="COUNTRY">USA</COUNTRY>
<COMPANY value="COMPANY">Columbia</COMPANY>
<PRICE value="PRICE">10.90</PRICE>
<YEAR value="YEAR">1985</YEAR>
</CD>
<CD value="CD2">
<TITLE value="TITLE">Hide your heart</TITLE>
<ARTIST value="ARTIST">Bonnie Tyler</ARTIST>
<COUNTRY value="COUNTRY">UK</COUNTRY>
<COMPANY value="COMPANY">CBS Records</COMPANY>
<PRICE value="PRICE">9.90</PRICE>
<YEAR value="YEAR">1988</YEAR>
</CD>
<CD value="CD3">
<TITLE value="TITLE">Greatest Hits</TITLE>
<ARTIST value="ARTIST">Dolly Parton</ARTIST>
<COUNTRY value="COUNTRY">USA</COUNTRY>
<COMPANY value="COMPANY">RCA</COMPANY>
<PRICE value="PRICE">9.90</PRICE>
<YEAR value="YEAR">1982</YEAR>
</CD>
<CD value="CD4">
<TITLE value="TITLE">Still got the blues</TITLE>
<ARTIST value="ARTIST">Gary Moore</ARTIST>
<COUNTRY value="COUNTRY">UK</COUNTRY>
<COMPANY value="COMPANY">Virgin records</COMPANY>
<PRICE value="PRICE">10.20</PRICE>
<YEAR value="YEAR">1990</YEAR>
</CD>
<CD value="CD5">
<TITLE value="TITLE">Eros</TITLE>
<ARTIST value="ARTIST">Eros Ramazzotti</ARTIST>
<COUNTRY value="COUNTRY">EU</COUNTRY>
<COMPANY value="COMPANY">BMG</COMPANY>
<PRICE value="PRICE">9.90</PRICE>
<YEAR value="YEAR">1997</YEAR>
</CD>
<CD value="CD6">
<TITLE value="TITLE">One night only</TITLE>
<ARTIST value="ARTIST">Bee Gees</ARTIST>
<COUNTRY value="COUNTRY">UK</COUNTRY>
<COMPANY value="COMPANY">Polydor</COMPANY>
<PRICE value="PRICE">10.90</PRICE>
<YEAR value="YEAR">1998</YEAR>
</CD>
</CDS>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值