我加载一个 XmlDocument,然后选择一些节点到一个 XmlNodeList 实例中。如果我编辑这些节点中的任何一个,XmlDocument 将被修改
XmlDocument xd = loadXml();
XmlNodeList xnl = xd.SelectNodes("/root/nodes");
foreach (XmlNode n in xnl)
{
n.InnerText = "";
}
所以我理解修改 XmlNodeList - 修改从中获取节点列表的 XmlDocument。
是否有某种方法可以将节点列表的深拷贝(我认为这就是我需要的)创建到另一个 XmlElement 中,这样当我修改这些节点时,它们将独立于它们被复制的原始位置?
最佳答案
为 xml 猫设置皮肤的方法不止一种。这只是一个。
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);
关于c# - 有没有办法在 C# 中复制或制作 XmlNodeList 的另一个副本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9335600/