20.5.在XML元素中添加属性
问题
我想为XML元素增加属性
解决办法
使用E4X的@ 操作符
讨论
使用E4X的@ 操作符可为元素添加新的属性,如:
在元素节点后面使用(.)操作符,再跟上@ 操作符,指定属性名称,=号右边即是属性值:
当使用这种语法时,属性名必须是合法的变量名称,也就是说必须是数字,字幕和下划线组成且不能以数字开头。但是有时如果属性名包含一些特殊符号,则不能用@操作符,必须加上[]操作符,例如:
在[]里还可用表达式产生动态属性名,这是种很实用的技巧:
我想为XML元素增加属性
解决办法
使用E4X的@ 操作符
讨论
使用E4X的@ 操作符可为元素添加新的属性,如:
+展开
-ActionScript
elementNode.@attributeName = "value";
在元素节点后面使用(.)操作符,再跟上@ 操作符,指定属性名称,=号右边即是属性值:
+展开
-ActionScript
var example:XML = <example><someElement/></example>;
// 添加属性
example.someElement.@number = 12.1;
example.someElement.@string = "example";
example.someElement.@boolean = true;
example.someElement.@array = ["a", null, 7, undefined, "c"];
/* 显示:
<example>
<someElement number="12.1" string="example" boolean="true"
array="a,,7,,c"/>
</example>
*/
trace( example );
// 添加属性
example.someElement.@number = 12.1;
example.someElement.@string = "example";
example.someElement.@boolean = true;
example.someElement.@array = ["a", null, 7, undefined, "c"];
/* 显示:
<example>
<someElement number="12.1" string="example" boolean="true"
array="a,,7,,c"/>
</example>
*/
trace( example );
当使用这种语法时,属性名必须是合法的变量名称,也就是说必须是数字,字幕和下划线组成且不能以数字开头。但是有时如果属性名包含一些特殊符号,则不能用@操作符,必须加上[]操作符,例如:
+展开
-ActionScript
example.someElement.@["bad-variable-name"] = "yes";
在[]里还可用表达式产生动态属性名,这是种很实用的技巧:
+展开
-ActionScript
example.someElement.@["color" + num] = "red";
加支付宝好友偷能量挖...