代码改变世界

解决复制XmlNode时的“不同上下文”的问题----C#

2008-10-24 09:24  Hundre  阅读(2382)  评论(0编辑  收藏  举报

    菜鸟起飞还真是问题不断,估计(菜鸟只感用“估计”)也有很多朋友在做和XML相关的开发中也经常遇到在Append一个XmlNode的时候遇到“该节点属于不同的上下文”的错误(好像是这么叫吧,详细的错误提示忘了,大概就是这么个意思吧)。这里分享下小弟自己的经验:假设你要Append到的XML文档问Target.xml,该XmlNode节点属于Source.xml文档。如果直接附加的话肯定会遇到不同的上下的错误,而且有因为XmlNode是只读的也不能直接赋值,不过XmlNodeList是可以直接赋值,可以把想要进行复制的XmlNode当成一个XmlNodeList,先生成一个新的XmlNodeList然后再轮询这个XmlNodeList把想要复制出来的节点Appended就可以了。

Code

(在网吧手写的代码,海涵海涵,有错误请大家更正。嘿嘿!)

原先开始想用的是foreach遍历,不过发现每appended一个节点,xnl里面便减少一个,于是就换while遍历了

 

晕死,刚发现原来使用XmlDocument.ImportNode()方法也能实现同样的功能,微软的在线MSDN有详解http://msdn.microsoft.com/zh-tw/library/system.xml.xmldocument.importnode(VS.80).aspx

真是献丑了