投稿者 魔界の仮面弁士  (社会人) 投稿日時 2009/12/15 21:00:11
どういう状況で使いたいのでしょうか?

XmlNodeList は特定の要素のコピーと言うわけではなく、 "live" なコレクションです。
各要素に対する変更がダイレクトに伝えられるようになっています。

Dim d As New XmlDocument()
d.LoadXml("<a><b/><c/><d/></a>")

Dim z As XmlNodeList = d.DocumentElement.ChildNodes
MsgBox(z.Count) 'b,c,d の3個 

d.DocumentElement.AppendChild(d.CreateElement("e"))
MsgBox(z.Count) 'b,c,d,e の4個 

d.DocumentElement.InnerXml = ""
MsgBox(z.Count) '0個 



そのため、単純にコピーすると、それはただの参照コピーとなり、複製とはなりません。

それぞれノードは、ParentNode や NextSibling プロパティを通じて、親兄弟の要素を
辿れるようになっている事もあり、複製を作るのであれば、その親オブジェクトも含め、
どこまでの範囲を複製するのかを定めて置く必要があるでしょう。