<?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>
本文介绍了一种使用ActionScript解析XML数据的方法,展示了如何通过不同方式访问XML节点,并演示了节点和属性过滤的功能。
165

被折叠的 条评论
为什么被折叠?



