加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何在不使用E4X循环的情况下将属性添加到XMLLIST

发布时间:2020-12-16 22:45:05 所属栏目:百科 来源:网络整理
导读:我有以下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";} 我循环遍历每个节点并添加一个属性.如何在
我有以下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:不支持分配多个项目的列表.”

解决方法

自提出这个问题已经过去2周,但总会有更多人需要帮助.

TypeError:错误#1089是由xml中多个对象的结果引起的.

通常我通过类似此操作= xml.classes.(@ id == 1).students.(@ no == 2).@ Grade =“A”;
由于xml.classes中有多个学生而导致错误,因此它尝试返回所有这些错误.正如错误所示:“不支持分配具有多个项目的列表.”您不能同时为多个对象分配值.

并且由于您将所有s添加到XMLList中,因此我不确定原因,因为我不使用XMLList.我认为这是无用的.因此,如果您将代码更改为

var xml:XML = <test>
    <node id='1'/>
    <node id='2'/>
    <node id='3'/>
    <node id='4'/>
    <node id='5'/>
</test>;


for each (var n:XML in xml) 
{
    n.@newAttribute = "1";
}

问题应该解决.
但我建议你使用“id”作为唯一键.然后,您可以使用该唯一键来访问XML中的特定项目,例如

xml.node.(@id=="1").@newAttribute="1";

我希望这可以帮助你.照顾自己

-Ozan

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读