actionscript 读取xml属性

1、可以使用 + 和 += 运算符连接 XMLList 对象:
  var x1:XML = <a>test1</a>  
  var x2:XML = <b>test2</b>  
  var xList:XMLList = x1 + x2; 
  xList += <c>test3</c>
这将对 XMLList 对象 xList 进行如下设置:
  <a>test1</a> 
  <b>test2</b> 
  <c>test3</c>
2、
  var myXML:XML =  
 <order> 
 <item id='1'> 
 <menuName>burger</menuName> 
 <price>3.95</price> 
 </item> 
 <item id='2'> 
 <menuName>fries</menuName> 
 <price>1.45</price> 
 </item> 
 </order>
包含了一些直观运算符 (如点 (.) 和属性标识符 (@) 运算符还有一种是两点(..)运算符,它是读取所有子孙某个结点的),还可以使用(*)读取所有,如( xxx.@*)用于访问 XML 中的属性(点是访问子结点,@是本结点中的属性):
  trace(myXML.item[0].menuName); // Output: burger 
  trace(myXML.item.(@id==2).menuName); // Output: fries 
  trace(myXML.item.(menuName=="burger").price); // Output: 3.95
再说一点 (.)后只能跟xml标签的一个属性,在不使用[ ]和@的情况下不能加变量
3、
使用 @ 符号 (属性标识符运算符)可以访问 XML 或 XMLList 对象的属性,如下面的代码所示:
  var employee:XML =  
 <employee id="6401" code="233"> 
 <lastName>Wu</lastName> 
 <firstName>Erin</firstName> 
 </employee>; 
  trace(employee.@id); // 6401
使用 @ 和 . 运算符不仅可以读取数据,还可以分配数据,如下所示:
  myXML.item[0].menuName="regular burger"; 
  myXML.item[1].menuName="small fries"; 
  myXML.item[2].menuName="medium cola"; 
   
  myXML.item.(menuName=="regular burger").@quantity = "2"; 
  myXML.item.(menuName=="small fries").@quantity = "2"; 
  myXML.item.(menuName=="medium cola").@quantity = "2";

4、
使用 for 循环可以循环访问 XML 的节点,如下所示:
  var total:Number = 0; 
  for each (var property:XML in myXML.item) 
  { 
 var q:int = Number(property.@quantity); 
 var p:Number = Number(property.price); 
 var itemTotal:Number = q * p; 
 total += itemTotal; 
 trace(q + " " + property.menuName + " $" + itemTotal.toFixed(2)) 
  } 
  trace("Total: $", total.toFixed(2));
5、
可以使用 attribute() 或 attributes() 方法访问 XML 或 XMLList 对象的特定属性或所有属性,如下面的代码所示:
  var employee:XML =  
 <employee id="6401" code="233"> 
 <lastName>Wu</lastName> 
 <firstName>Erin</firstName> 
 </employee>; 
  trace(employee.attribute("id")); // 6401 
  trace(employee.attribute("*").toXMLString());  
  // 6401 
  // 233 
  trace(employee.attributes().toXMLString());  
  // 6401 
  // 233
6、
  employee.attribute("id") 
  employee["@id"] 
  employee.@["id"]
其中每一个都等效于 employee.@id。但是,语法 employee.@id 是首选方式。
7、
可将 * 通配符和 @ 符号一起使用来访问 XML 或 XMLList 对象的所有属性,如下面的代码所示:
  var employee:XML =  
 <employee id="6401" code="233"> 
 <lastName>Wu</lastName> 
 <firstName>Erin</firstName> 
 </employee>; 
  trace(employee.@*.toXMLString());  
  // 6401 
  // 233
可以使用 attribute() 或 attributes() 方法访问 XML 或 XMLList 对象的特定属性或所有属性,如下面的代码所示:
  var employee:XML =  
 <employee id="6401" code="233"> 
 <lastName>Wu</lastName> 
 <firstName>Erin</firstName> 
 </employee>; 
  trace(employee.attribute("id")); // 6401 
  trace(employee.attribute("*").toXMLString());  
  // 6401 
  // 233 
  trace(employee.attributes().toXMLString());  
  // 6401 
  // 233

7、
ActionScript 3.0 包含 for..in 语句和 for each..in 语句,用于遍历 XMLList 对象。例如,我们来看下面的 XML 对象 myXML 
和 XMLList 对象 myXML.item。XMLList 对象 myXML.item 由 XML 对象的两个 item 节点组成。
  var myXML:XML =  
 <order> 
 <item id='1' quantity='2'> 
 <menuName>burger</menuName> 
 <price>3.95</price> 
 </item> 
 <item id='2' quantity='2'> 
 <menuName>fries</menuName> 
 <price>1.45</price> 
 </item> 
 </order>;
for..in 语句用于遍历 XMLList 中的一组属性名称:
  var total:Number = 0; 
  for (var pname:String in myXML.item) 
  { 
 total += myXML.item.@quantity[pname] * myXML.item.price[pname]; 
  }
for each..in 语句用于遍历 XMLList 中的属性: 
  var total2:Number = 0; 
  for each (var prop:XML in myXML.item) 
  { 
 total2 += prop.@quantity * prop.price; 
  }

8、加参数
a="name";
for each(var i:XML in myxml)
{

                                trace(" ssssssss                :" +i.@[a]+"\n");//可以
trace(" ssssssss                :" +i[“@”+a]+"\n");//可以,
trace(" ssssssss                :" +i[a]+"\n");//不可以,必须加@表示取的是属性
trace(" ssssssss                :" +i[@a]+"\n");//不可以,@后紧跟的必是xml中确定存在的属性,不能是参数
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值