复制其中AC节点到AD 如下 
要求代码具有通用性 可以复制任意节点 到同级节点 <Root>
  <AAA>
    <AC>
      <AE>
        <AF>1111</AF>
        <AG>2222</AG>
        <AH>3333</AH>
        <AI>4444</AI>
        <AJ>5555</AJ>
      </AE>
      <AK>6666</AK>
      <AF>7777</AF>
      <AG>8888</AG>
    </AC> 
  </AAA>  
</Root> 结果 :
<Root>
  <AAA>
    <AC>
      <AE>
        <AF>1111</AF>
        <AG>2222</AG>
        <AH>3333</AH>
        <AI>4444</AI>
        <AJ>5555</AJ>
      </AE>
      <AK>6666</AK>
      <AF>7777</AF>
      <AG>8888</AG>
    </AC> 
    <AD>
      <AE>
        <AF>1111</AF>
        <AG>2222</AG>
        <AH>3333</AH>
        <AI>4444</AI>
        <AJ>5555</AJ>
      </AE>
      <AK>6666</AK>
      <AF>7777</AF>
      <AG>8888</AG>
    </AD> 
  </AAA>  
</Root> 如复制 AE节点 到AZ 结果
<Root>
  <AAA>
    <AC>
      <AE>
        <AF>1111</AF>
        <AG>2222</AG>
        <AH>3333</AH>
        <AI>4444</AI>
        <AJ>5555</AJ>
      </AE>
      <AZ>
        <AF>1111</AF>
        <AG>2222</AG>
        <AH>3333</AH>
        <AI>4444</AI>
        <AJ>5555</AJ>
      </AZ>
      <AK>6666</AK>
      <AF>7777</AF>
      <AG>8888</AG>
    </AC> 
  </AAA>  
</Root>

解决方案 »

  1.   

    你可以使用InnerXml属性比如
    XmlElement xe = doc.CreateElement("AZ");
    xe.InnerXml = 你的AE节点.InnerXml;
    然后调用 
    AC节点.InsertAfter方法~~~~
      

  2.   

    先把你的要复制的节点找到。然后调用这个节点的CloneNode(true)方法,然后查你的目的节点是不是存在。如果存在就找到这个节点。调用追加节点的方法就可以了啊。如果不存在那么就追加薪节点,把复制的节点加到新生成的节点。再把新节点追加到你要放的位置。
    不难的啊。
      

  3.   

    参考下面的说明
    ===================================要插入的节点出自不同的文档上下文Root=MyDoc.DocumentElement  
    StudentNode   =   Root.SelectSingleNode("//Student[@ST_ID='007']")     '获得目标节点   
    ToRoot   =   MyTOdoc.DocumentElement   
    ToRoot.AppendChild(StudentNode)     '插入到另外一个xml文档中   
    发生错误:要插入的节点出自不同的文档上下文。XmlNode.AppendChild   方法适用于新建的节点   
    如果插入的节点是从另一个文档创建的,则可以使用   XmlDocument.ImportNode   将该节点导入到当前文档中。
    随后,导入的节点即可插入到当前文档中。XmlNode xn = parentNode.OwnerDocument.ImportNode(node,true);
    parentNode.AppendChild(xn);