我有下面给出的xml数据。
<Sports>
<Oplympics>
<CONT Team="All" Country="Some" FLG = "0">
<TeamData Data="1" Data="2" Data="3"/>
</CONT>
<CONT Team="Aus" Country="Australia" FLG = "0">
<TeamData Player="X1" Player2 = "X2"/>
</CONT>
<CONT Team="Eng" Country="England" FLG = "0">
<TeamData Player="Y1" Player2 = "Y2"/>
</CONT>
</Oplympics>
我想要的是从CONT中获取
TeamData
的第一个标签,并从第二个到最后添加到所有CONT中。样本输出将像<Sports>
<Oplympics>
<CONT Team="All" Country="Some" FLG = "0">
<TeamData Data="1" Data="2" Data="3"/>
</CONT>
<CONT Team="Aus" Country="Australia" FLG = "0">
<TeamData Player="X1" Player2 = "X2"/>
<TeamData Data="1" Data="2" Data="3"/>
</CONT>
<CONT Team="Eng" Country="England" FLG = "0">
<TeamData Player="Y1" Player2 = "Y2"/>
<TeamData Data="1" Data="2" Data="3"/>
</CONT>
</Oplympics>
我正在尝试此代码。在这里,我得到了TeamData,然后在for循环中为第一个元素设置,但在第二个它没有进入循环。我错过了什么吗?任何人都可以帮忙吗
var TeamData = Xml.getElementsByTagName('CONT')[0];
var CONTTag = Xml.getElementsByTagName('CONT');
for(var i=1; i<CONTTag.length-1; CONTTag++){
CONTTag[i].append(TeamData);
}
最佳答案
您的代码有一些问题:
第一行出现语法错误-删除“。”关闭之间
支架和开口方括号。
TeamData变量实际上并不包含TeamData节点-需要更改选择器。
循环应从1开始,而不是零,因为第一个CONTTag节点是您要复制的节点。
循环应增加i,而不是CONTTag。
这是您的代码,其中包含这些修复程序:
var TeamData = Xml.getElementsByTagName('TeamData')[0];
var CONTTag = Xml.getElementsByTagName('CONT');
for (var i = 1; i < CONTTag.length; i++) {
CONTTag[i].append(TeamData.cloneNode());
}
其他一些一般性评论:
您的XML缺少结束标记。
XML节点不应具有重复名称的属性-因此,您的TeamData节点目前是无效的XML。