【发布时间】:2013-02-09 14:30:03
【问题描述】:
我有以下xml
var xml:XML = <test>
<node id='1'/>
<node id='2'/>
<node id='3'/>
<node id='4'/>
<node id='5'/>
</test>;
var xmlist:XMLList = xml.children();
for each (var node:XML in xmlist)
{
node.@newAttribute = "1";
}
我正在遍历每个节点并添加一个属性。如何在不循环的情况下做到这一点?这个我试过了
xmlist.attributes().@newAttrib = "1";
但我收到错误“TypeError:错误 #1089:不支持分配给包含多个项目的列表。”
【问题讨论】:
-
您想克服什么问题?是表达的速度还是简洁?
-
我正在寻找简洁和速度,为什么我需要遍历所有节点来添加属性?如果我可以在一行代码中实现同样的功能会更方便。
-
如果你想在 1 LOC 中完成,为什么不把它包装在一个函数调用中?
-
是的,我可以这样做,但我的要求是我必须在不使用任何循环语句的情况下完成它,我需要 e4x 中的任何预定义语法来为 [0] 中的 xmllist 中的所有 xml 项目添加一个属性]..[n].
-
实际上在纯 XML 环境中唯一的方法是通过 XSLT ;-) 我猜你会更喜欢你现在正在做的方式
标签: xml actionscript-3 actionscript flex4 xmllist