【问题标题】:How can I add new root element to a C# XmlDocument?如何将新的根元素添加到 C# XmlDocument?
【发布时间】:2010-02-15 21:44:53
【问题描述】:

我有一个不受控制的 XmlDocument,其结构如下:

<parent1>
...minor amount of data...
</parent1>

我还有另一个 XmlDocument,也在我的控制之外,它具有以下结构:

<parent2>
..very large amount of data...
</parent2>

我需要一个 XmlDocument 格式:

<parent1>
...minor amount of data...
<parent2>
..very large amount of data...
</parent2>
</parent1>

我不想复制 parent2。如何在不复制 parent2 的情况下获得所需的结构?我相信这意味着

oParent1.DocumentElement.AppendChild(oParent1.ImportNode(oParent2.DocumentElement, true));

是不可能的。

有什么好的解决方案吗?

【问题讨论】:

  • 我看到您正在尝试合并 XML 文档。你应该完全放弃它并改用 jQuery。
  • 不是很有帮助,这是用 C# 编写的服务器端代码。
  • 我在开玩笑。 meta.stackexchange.com/questions/19478/the-many-memes-of-meta/…我基本上是在说你难倒我。
  • parent2 的内容已经到达了已经加载到 XmlDocument 中的代码中,您不能更改它吗?
  • 之间是否存在某种关系?也许是某种 ID 属性,告诉哪些链接在一起?

标签: c# optimization xmldocument


【解决方案1】:

只需从 parent2 XmlDocument 中删除 DocumentElement,然后将导入的 parent1 节点附加到 XmlDocument(直接 -- 不是 DocumentElement)并将删除的 parent2 节点重新附加到导入的 parent1 节点:

var p1node = oParent2.ImportNode(oParent1.DocumentElement, true);
var p2node = oParent2.RemoveChild(oParent2.DocumentElement);

oParent2.AppendChild(p1node);
p1node.AppendChild(p2node);

【讨论】:

    猜你喜欢
    • 2011-03-05
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 2010-09-24
    • 1970-01-01
    • 2016-06-21
    相关资源
    最近更新 更多