AS3之解析XML

范例代码:

 

var xml:XML= <data>
  <item name="cat" id="1" type="pet" />
  <item name="starling" id="1" type="animal" />
  <item name="mouse" id="1" type="animal" /> 
  <item name="dog" id="1" type="pet" />
</data>


目的:要得到type为pet的name,  用@type属性找,注意写法带圆括号,包含@  .(@type == 'pet')

var xml2:XMLList = xml.item.(@type == 'pet');
for (var i:*  in xml2) 
{
	trace(i,xml2[i]);
}

trace得到

0
1

怎样得到name的值呢?

-->toString......转成字符串,读出来

var xml2:XMLList = xml.item.(@type == 'pet');
for (var i:*  in xml2) 
{ 
	trace(i,xml2[i].toString());
}

trace得到

0
1

读不出来?-->撕碎XML,暴力解决!......

var str:String = xml.item.(@type == 'pet').toString();
trace(str);
var arr:Array = str.split('\n');
trace(arr.length);
for (var i:int = 0; i < arr.length; i++) 
{ 
	var txt:String = arr[i];
	
	txt = String(txt.split(' ')[1]);
	txt = txt.substring('name="'.length, txt.length - 1); 
	trace(txt);
}

trace得到

<item name="cat" id="1" type="pet"/>
<item name="dog" id="1" type="pet"/>
2
cat
dog

神啊,请赐予我力量,奥特曼~~

记住这个:toXMLString()

var xml2:XMLList = xml.item.(@type == 'pet');
for (var i:*  in xml2) 
{
	trace(i,xml2[i].toXMLString());
}

trace得到

0 <item name="cat" id="1" type="pet"/>
1 <item name="dog" id="1" type="pet"/>

name呢----〉用属性标签

var xml2:XMLList = xml.item.(@type == 'pet');
for (var i:*  in xml2) 
{
	trace(i,xml2[i].@name);
}  

trace得到

0 cat
1 dog

收功

 

 

package  
{
	import flash.display.Sprite;
	public class XMLtest extends Sprite
	{
		
		public function XMLtest() 
		{
			
var xml:XML= <data>
  <item name="cat" id="1" type="pet" />
  <item name="starling" id="1" type="animal" />
  <item name="mouse" id="1" type="animal" /> 
  <item name="dog" id="1" type="pet" />
</data>

/*var xml2:XMLList = xml.item.(@type == 'pet');
for (var i:*  in xml2) 
{
	trace(i,xml2[i]);
}*/

/*var xml2:XMLList = xml.item.(@type == 'pet');
for (var i:*  in xml2) 
{ 
	trace(i,xml2[i].toString());
}*/

/*var str:String = xml.item.(@type == 'pet').toString();
trace(str);
var arr:Array = str.split('\n');
trace(arr.length);
for (var i:int = 0; i < arr.length; i++) 
{ 
	var txt:String = arr[i];
	
	txt = String(txt.split(' ')[1]);
	txt = txt.substring('name="'.length, txt.length - 1); 
	trace(txt);
}*/

/*var xml2:XMLList = xml.item.(@type == 'pet');
for (var i:*  in xml2) 
{
	trace(i,xml2[i].toXMLString());
}*/
	
var xml2:XMLList = xml.item.(@type == 'pet');
for (var i:*  in xml2) 
{
	trace(i,xml2[i].@name);
}  
		}
		
	}

}


 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值