解决复制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
真是献丑了