city.xml的内容如下:
</xml version="1.0" encoding="gb2312"?>
<root>
<city name="北京" code="010" pnum="10W">Beijing</city>
<city name="上海" code="020" pnum="15W">shanghai</city>
<city name="深圳" code="030" pnum="20W">shenzhen</city>
</root>
常用操作:
System.useCodepage = true; //如果加载的外部文本文件没有按 Unicode 进行编码,则应将System.useCodepage 设置为 true。
var xmlData:XML=new XML() //创建xml对象
xmlData.ignoreWhite=true; //忽略空格
var myList:Array = new Array(); //为了可以在flash中其他位置可以使用xml的数据,把数组存在onLoad外面
xmlData.Load("city.xml") //开始加载外部xml文件
xmlData.onLoad=function(success.Boolean){ //加载完成后操作
if(success){
trace("加载完成");
myList=this.childNodes[0].childNodes; // xml文档中<root>节点下<city>节点内容,childNodes本身是Array對象。还可以写成myList=this.firstChild.childNodes;
//若xml文档中有三个节点层,例有myList=this.childNodes[0].childNodes[0].childNodes;
}
else{
trace("加载失败");
}
}
function getName(p1:String):Void{ //根据xml属性code的值进行检索,*.attributes属性
if(p1==myList[0].attributes.code){
cityName=myList[0].attributes.name;
cityPNum=myList[0].attributes.pnum;
}
}
a_btn.onRelease=function(){//根据xml检索属性code="010"
getName("010");
trace(cityName);
trace(cityPNum);
}
function main(){ //循环遍历xml树
for(i:Number=0;i<myList.length;i++){
trace(myList[i]);
}
}
XMLNode类:
XMLNode.attributes;//用来指定xml文档的属性.
XMLNode.childNodes;//返回指定xml文档对象的子级的数组.
XMLNode.firstChild;//引用父级节点的子级列表中的第一个子级.
XMLNode.nodeValue;//返回XML对象的节点值.
XMLNode.nodeName;//XML 对象的节点名称
xmlData.childNodes[0]将返回:
<root>
<city name="北京" code="010" pnum="10W">Beijing</city>
<city name="上海" code="020" pnum="15W">shanghai</city>
<city name="深圳" code="030" pnum="20W">shenzhen</city>
</root>
xmlData.childNodes[0].nodeName将返回:
root
xmlData.childNodes[0].childNodes[0]将返回:
<city name="北京" code="010" pnum="10W">Beijing</city>
xmlData.childNodes[0].childNodes[0].nodeName将返回:
city
xmlData.childNodes[0].childNodes[1].attributes.name将返回:
上海
xmlData.childNodes[0].childNodes[0].childNodes[0].nodeValue将返回:
Beijing
本文介绍如何使用Flash解析XML文件,并提供了实例代码。包括加载XML文件、遍历节点、获取属性值等操作。
2244

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



