我正在尝试创建一个新的 XDocument,如下所示:
var xmlString = _documentDictionary[documentKey].ToString(SaveOptions.DisableFormatting);
XDocument xml = XDocument.Parse(xmlString);
我现在有xml
我本来希望它是一个文档的独立实例,因为我从原始文档中提取了字符串并从中创建了一个新文档。
但是当我修改时xml
然后检查_documentDictionary[documentKey]
我可以看到原始文档也被修改了。
如何从现有的文档集中获取新的独立文档?
Note:
我已经尝试过这些,但它不起作用:
var xmlString = _documentDictionary[documentKey].ToString(SaveOptions.DisableFormatting);
var copyDoc = new XDocument(xmlString);
and
var copyDoc = new XDocument(_documentDictionary[documentKey]);
有一个定义的复制构造函数XDocument class http://msdn.microsoft.com/en-us/library/bb341301.aspx:
var newDoc = new XDocument(xml);
您可以使用此构造函数来制作 XDocument 的深层副本。
该构造函数遍历文档中的所有节点和属性
在 other 参数中指定,并创建所有节点的副本:
它组装新初始化的 XDocument。
快速测试
var doc = new XDocument(new XElement("Test"));
var doc2 = new XDocument(doc);
doc.Root.Name = "Test2";
string name = doc.Root.Name.ToString();
string name2 = doc2.Root.Name.ToString();
name
is "Test2"
and name2
is "Test"
,改变的证据是什么doc
不影响doc2
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)