处理XML数据

来源:互联网 发布:js高分子防水涂料 编辑:程序博客网 时间:2024/05/16 11:53
<?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>
 
原创粉丝点击