从现有XDocument创建新的XDocument

Bob*_*way 9 .net xml linq-to-xml

我有一个函数,它将XDocument对象作为参数.

我需要遍历不同集合中的许多其他对象,并为这些对象中的每一个对XDocument执行一些操作.但lopp的每次迭代都需要传递给函数的原始XDocument的原始副本.

但是,如果我只是尝试对传递给函数的变量执行操作,它就像一个指针 - 所以循环的每次迭代都会在最后一次迭代结束时留下的任何状态下接收XDocument,这对于所有.

显然我需要复制一份Xdocument,但我看不出这样做的直接方式.试:

 XDocument currentServerXml = XDocumentFromFunction.Document():
Run Code Online (Sandbox Code Playgroud)

然后使用currentServerXml而不是XDocumentFromFunction获取具有相同指针和相同行为的相同副本.

如何为循环的每次迭代创建全新的数据副本?

Don*_*ono 17

您正在寻找采用XDocument的XDocument 构造函数.这将创建传递的XDocument的深层副本.

示例代码:

var foo_original = XDocument.Load("foo.xml");
var foo_copy1 = new XDocument(foo_original);
var foo_copy2 = new XDocument(foo_original);
Run Code Online (Sandbox Code Playgroud)