【问题标题】:How can I copy an XmlNode from one XmlDocument to another?如何将 XmlNode 从一个 XmlDocument 复制到另一个?
【发布时间】:2011-01-26 22:54:24
【问题描述】:

我正在构建一个创作/编辑 XML 文件的工具,并且我希望能够使用在另一个 XML 文件中定义的模板片段来填充它。

例如,该工具有一个“添加 FooBarBaz 元素”按钮,可以将元素添加到正在创建的新文档中,我想通过从模板中复制来添加 FooBarBaz。

或者假设这是我的模板文件:

<Templates>
    <FooBarBaz Attribute="Value">
        <ChildElement/>
    </FooBarBaz>
</Templates>

然后我可以使用 .GetElementsByTagName("FooBarBaz") 获取模板片段,并且我希望能够使用 .AppendChild(templateNode) 之类的内容将其注入新文档。

但问题是 XmlNode 不能从一个 XmlDocument 复制到另一个,即使您使用 .Clone() 或 .CloneNode(),因为 AppendChild() 会抛出一个异常,指出模板元素属于另一个上下文。

有没有一种简单的方法可以在 System.Xml.XmlDocument 之间复制 System.Xml.XmlNode?​​p>

【问题讨论】:

    标签: xml .net-3.5 .net-4.0


    【解决方案1】:

    【讨论】:

      【解决方案2】:

      查看ImportNode 方法:

      var myNewDoc = new XmlDocument();
      myNewDoc.ImportNode(xmlNode, true);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-06-15
        • 1970-01-01
        • 1970-01-01
        • 2011-07-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多