c# - 有没有办法在 C# 中复制或制作 XmlNodeList 的另一个副本?

标签 c# xml

我加载一个 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/

相关文章:

java - 需要用Java代码检索列表中的所有Excel列名

c++如何使用boost xml解析器读取XML并存储在 map 中

c# - WPF 正确处理 View 和 View 模型

c# - 整数预增量错误

xml - 如何在 xsl 中的另一个 for-each 中使用 for-each

xml - kml 默认命名空间与数据集默认命名空间冲突

xml - 哈希表包含$ null值

c# - 带 BlockingCollection 的线程池

c# - Assert.ThrowsExceptionAsync 不工作

c# - 创建更快的正则表达式 clr 函数