错误信息如下:
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.**mi*crosoft.com/msdnmag/issues/02/05/web/
摩托车销售模拟器内置菜单中文版
摩托车出售模拟器,又名摩托车销售模拟器,这是一个以摩托车销售
船舶模拟2020最新版
船舶模拟2020是玩法非常有意思的模拟驾驶游戏,高清3d画质
油管主播的生活2内置菜单版
油管主播的生活2内置菜单版是一款模拟养成类游戏,在这里你将体
网吧老板模拟器2手机版
网吧老板模拟器2是非常受欢迎的模拟经营题材手游,在原本的基础
美国警察模拟器巡警2024最新版
美国警察模拟器是一款好玩的模拟手游,游戏中你将扮演一位警察,