错误信息如下:
The node to be inserted is from a different document context
意思是不能直接插入其他xml文档中的元素。解决方法是用ImportNode();函数先导出。XmlDocument xmlOld = new 今天在使用XML节点复制时,遇到一些问题,浪费了2个小时的时间。可是,公司的网络又慢,只能通过MSN请朋友帮我根据错误信息找。还好,找到了解决问题的方法。
代码如下 | 复制代码 |
XmlDocument();//老文档 XmlNode nodeOld = xmlOld.SelectSingleNode("xpath");//老文档中元素 XmlDocument xmlNew = new XmlDocument();//新文档 XmlNode nodeNew = xmlNew.ImportNode(nodeOld, true);//先导入老文档中的元素 xmlNew.AppendChild(nodeNew);//再追加 xmlNew.AppendChild(nodeOld);// |
这样会提示那样的错误信息下面是一些可能有用的信息:
错误信息如下:
The node to be inserted is from a different document context
我测试了Clone/CloneNode两个方法,同样出现这个错误。
根据文档的说明,使用ImportNode解决了问题。
有经验的朋友,讲讲为什么?
-----------------------------------------------------------------------------------------------------
这是英文的帖子:
代码如下 | 复制代码 |
Hi, I 've got the following piece of code that 's causing me a bit of a problem XmlDocument doc = new XmlDocument (); The last line (rootNode.AppendChild (rolesNode)) throws an exception "The Eirik M. |
网友的回复:
代码如下 | 复制代码 |
The proble you 're having relates to the fact that the user object is Either you pass doc to GetRoles so that the nodes are created from the rootNode.AppendChild(doc.ImportNode(rolesNode,true)); instead of the previous AppendChild. best regards |
-------------------------------------------------------------------------------------------------------
在.NET里,一个节点是有context 的,只能属于一个XML文档,你可以看到XmlNode有个只读OwnerDocument属性,这是跟w3c的标准相符合的
如果你需要把一个节点拷贝到另一个文档去,需要使用ImportNode
参考
http://msdn.microsoft.com/msdnmag/issues/02/05/web/
敢达决战官方正版 安卓版v6.7.9
下载敢达决战 安卓版v6.7.9
下载像素火影骨架佐助 (Perseverance Fire Shadow)手机版v1.16
下载要塞英雄 安卓版v33.20.0-39082670-Android
下载梦想城镇vivo最新版本 安卓版v12.0.1
梦想城镇vivo版是这款卡通风模拟经营类手游的渠道服版本,玩
怦然心动的瞬间 安卓版v1.0
怦然心动的瞬间是一款真人向的恋爱互动游戏,在游戏中玩家将扮演
曼尼汉堡店游戏 安卓版v1.0.3
曼尼汉堡店是一款非常好玩的精品恐怖类型冒险游戏,在这款游戏中
现代总统模拟器去广告版 安卓版v1.0.46
现代总统模拟器是一款休闲养成类游戏,可能对于不少的玩家来说都
现代总统模拟器付费完整版 安卓版v1.0.46
现代总统模拟器高级版在商店是需要付费的,相对于普通版本,高级