最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
dom XML文档元素互相复制解决方法
时间:2022-06-25 16:48:32 编辑:袖梨 来源:一聚教程网
错误信息如下:
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/
相关文章
- 虾米音乐如何恢复删除的歌单 05-27
- 恐龙神奇宝贝手游恐龙养成攻略 恐龙神奇宝贝手游新手恐龙培养与进阶技巧 05-27
- 全能扫描王使用操作相关问题详情 05-27
- 雷霆大战手游T0船长推荐 雷霆大战手游最强船长阵容与培养指南 05-27
- 铸兵之王开荒指南 铸兵之王新手入门全流程攻略 05-27
- 《快手》号修改方法 05-27