是否有方法在C#中复制或制作XmlNodeList的另一个副本
本文关键字:XmlNodeList 另一个 副本 有方法 复制 是否 | 更新日期: 2023-09-27 18:24:56
我加载一个XmlDocument,然后在XmlNodeList实例中选择一些节点。如果我编辑这些节点中的任何一个,XmlDocument将被修改
XmlDocument xd = loadXml();
XmlNodeList xnl = xd.SelectNodes("/root/nodes");
foreach (XmlNode n in xnl)
{
n.InnerText = "";
}
因此,我理解修改XmlNodeList-修改从中获取节点列表的XmlDocument。
是否有某种方法可以将节点列表创建到另一个XmlElement中的深度副本(我认为这正是我所需要的),这样当我修改这些节点时,它们将独立于复制它们的原始位置?
对xml cat进行蒙皮的方法不止一种。这只是一个。
var xd = new XmlDocument();
xd.LoadXml("<root><nodes><node>1</node><node>2</node></nodes></root>");
var xnl = xd.SelectSingleNode("/root/nodes").Clone();
foreach (XmlNode n in xnl)
{
n.InnerText = "x";
}
Console.Out.WriteLine(xd.OuterXml);
Console.Out.WriteLine("--------------");
Console.Out.WriteLine(xnl.OuterXml);
您需要使用.CloneNode
创建自己的副本。MSDN有一个例子。