Flex教程 通过E4X语法遍历XML文档

  19.2.1问题 对于一个基于多个字段(attribute)的属性值的XML文件, 应如何选取其中的节点? 19.2.2. 解决办法
  使用E4X语法的"@"运算符来存取属性, "([])运算符(数组索引)"是用来指示多个子节点之间的关系, 而"."运算符则用来表示已命名子节点之间的关系。
  19.2.3. 讨论
  通过E4X, 你可以在子节点的名称后附加一个"."运算符, 这样你就可以存取XML文件中特定的子节点。
  例如, 从以下的文件中
  var xml:XML =
  Hello World
  
  你可以通过以下的方法来存取的数值:
  xml.bar
  由于为该XML对象的根节点, 所以无需对其进行引用。
  要存取一个文件中节点的属性, 例如:
  var xml:XML =
  Hello World
  
  可以使用"@"运算符来指定所需的属性值为一个字段:
  xml.bar.@type
  要存取多个名称相同的子节点, 可以使用"[]"运算符。好像以下的例子:
  var xml:XML =
  Hello World
  Hola
  Guten Tag
  
  你可以使用以下的方法来存取系列的第三个对象:
  xml.bar[2].@type
  对于一个用以定义在菜单上项目的简单XML结构, 可以使用如下的代码段:
  private var xmlItems:XML =
  
  burger
  3.95
  
  
  fries
  1.45
  
  
  private var arr:Array;
  private function init():void {
  arr = new Array();
  for each(var xml:XML in xmlItems.item) {
  arr.push(Number(xml.@id));
  }
  }
  要对属性值或节点进行测试的话, 可以使用相等运算符(==):
  trace(xmlItems.item.(@id == "2").menuName);
  任何符合条件的节点都会被返回, 否则就会被忽略。以下的例子会把Label组件的text属性设置为一个id等于2的item的menuName:
  private var xmlItems:XML =
  
  burger
  3.95
  
   fries 1.45 private function init():void { xmlLabel.text = xmlItems.item.(@id == "2").menuName; } ]]> 相等(==)跟不等(!=)运算符两者都可以用来测试一个属性或节点的值, 它们可以为字符串或数字, 所返回的结果为一个布朗值。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值