处理XML数据

<? xml version="1.0" encoding="utf-8" ?>
< mx:Application  xmlns:mx ="http://www.adobe.com/2006/mxml"  layout ="absolute"  creationComplete ="initApp()" >
    
< mx:Script >
        
<![CDATA[
            //方法一:定义XML数据
            private var myData:XML = <items>
            <item type="流行音乐"> <song>aaaaaaaa</song> </item>
            <item type="古典音乐"> <song>bbbbbbbb</song> </item>
            <item type="乡村音乐"> <song>cccccccc</song> </item>
            </items>;
        
            //初使化程序,解析XML
            internal function initApp():void{
                //输出XML数据的原始信息,使用toXMLString方法,自动格式化XML数据
                TxtSource.text=myData.toXMLString();
                output("方法一:输出XML语言的节点");
                output("节点数目"+myData..item.length());//得到item节点的总数量  ..符号访问子节点,这里得到所有节点名为“item”的子节点
                for(var prop:String in myData..item){
                    var node:XML=myData..item[prop];
                    output("节点:"+prop);
                    output("属性名:"+String(node.@type));   //@符号表示访问节点的属性
                    output("子节点:"+node.song);
                    output("------------");
                }
                output("方法二:输出XML语言的节点");
                output("节点数目"+myData.child("item").length());//得到item节点的总数量  
                for(var prop:String in myData.child("item")){   //myData.child("item")表示得到所有节点名为item的数据
                    var node:XML=myData.child("item")[prop];
                    output("节点:"+prop);
                    output("属性名:"+node.attribute("type"));  //得到所有名为"type"的属性
                    output("子节点:"+node.child("node"));
                    output("------------");
                }
                output("方法三:以XMLList形式返回所有的子节点");
                output(myData.children());
                output("------------");
                //XML实现节点和属性过滤,利用这个功能可以对数据进行快速查找和定位
                
                output(myData.child("item").(@type=="流行音乐"));   //查找item节点下属性为"流行音乐"的节点
                output("------------");
                output(myData.child("item").(song != "bbbbbbbb").song);   //查找item节点下的“song”节点值不是"bbbbbbbb"的节点
                output("------------");
            }
            
            internal function output(str:String):void{
                TxtOutput.text +=str +" ";
            }
        
]]>
    
</ mx:Script >
    
<!--    方法二:用<mx:XML>标签定义XML数据    -->
    
< mx:XML  id ="myData1" >
        
< items >
            
< item  type ="流行音乐" >   < song > aaaaaaaa </ song >   </ item >
            
< item  type ="古典音乐" >   < song > bbbbbbbb </ song >   </ item >
            
< item  type ="乡村音乐" >   < song > cccccccc </ song >   </ item >
            
</ items >
    
</ mx:XML >
    
< mx:Panel  x ="24"  y ="10"  width ="340"  height ="308"  layout ="absolute"  title ="原始XML数据" >
        
< mx:TextArea  x ="10"  y ="10"  height ="248"  width ="301"  id ="TxtSource" />
    
</ mx:Panel >
    
< mx:Panel  x ="387"  y ="10"  width ="334"  height ="308"  layout ="absolute"  title ="输出解析信息" >
        
< mx:TextArea  x ="10"  y ="10"  height ="248"  width ="294"  id ="TxtOutput" />
    
</ mx:Panel >
</ mx:Application >
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值