XML 如何复制一个节点



复制其中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>

3 个解决方案

#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);
智能推荐

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
© 2014-2019 ITdaan.com 粤ICP备14056181号  

赞助商广告