XML 标签中没有追加

Appending is not happening in XML tag

我有下面给出的 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);
                }

您的代码存在一些问题:

  1. 第一行有语法错误 - 删除“.”关闭之间 括号和左方括号。
  2. TeamData 变量实际上并不包含 TeamData 节点 - 选择器需要更改。
  3. 循环应该从 1 开始,而不是零,因为第一个 CONTTag 节点是您要从中复制的节点。
  4. 循环应该递增 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());
}

其他一些一般性评论:

  1. 您的 XML 缺少结束标记。
  2. XML 节点不应具有重名的属性 - 因此您的 TeamData 节点目前无效 XML。