.net - VB.NET 将 xml 节点插入现有 XML 文档

标签 .net xml vb.net

我只是想合并 2 个 xml 文档(将一个节点添加到另一个文档中)。我做了一些谷歌搜索,并尝试了一些方法,但我总是得到相同的错误“要插入的节点来自不同的文档上下文”

我确信我错过了一些简单的东西,只是看起来这不应该那么困难。

这是我的代码:

    Dim xmlDoc482 As XmlDocument = New XmlDocument
    Dim xmlDoc486 As XmlDocument = New XmlDocument
    Dim xmlDoc490 As XmlDocument = New XmlDocument

    xmlDoc482.LoadXml(strSettlement482)
    xmlDoc486.LoadXml(strSettlement486)
    xmlDoc490.LoadXml(strSettlement490)

    Dim xmlSummarysNode490 As XmlNode = xmlDoc486("Summarys")
    Dim xmlSummaryNode482 As XmlNode = xmlDoc482("Summarys").LastChild
    Dim xmlSummaryNode486 As XmlNode = xmlDoc486("Summarys").LastChild

    Dim nodeDest As XmlNode
    nodeDest = xmlDoc490.ImportNode(xmlSummaryNode482, True)
    xmlSummarysNode490.AppendChild(nodeDest)

    nodeDest = xmlDoc490.ImportNode(xmlSummaryNode486, True)
    xmlSummarysNode490.AppendChild(nodeDest)

最佳答案

尝试将导入的节点附加到 DocumentElement 而不是行 Dim xmlSummarysNode490 As XmlNode = xmlDoc486("Summarys")。

xmlDoc490.DocumentElement.AppendChild(nodeDest)

您还可以在插入之前尝试使用 CloneNode() 而不是 ImportNode()

最后,过去帮助我进行合并的事情是构建一个简单的容器 xml,然后将所有子文档转储到其中。

xmlMerged.LoadXML("<set></set>")

所以就变成了:

<set>
 <Summary>....</Summary>
 <Summary>....</Summary>
 ...
</set>

关于.net - VB.NET 将 xml 节点插入现有 XML 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/687081/

相关文章:

c# - 无法通过 .NET System.Xml.Xsl.XslCompiledTransform 将 XML 转换为 HTML

c# - MS Access C#.NET 中的 SQL Server

xml - Visual Studio 2013 IntelliSense 无法使用特定的 web.config 文件

xml - 将数据从数据库导出到 XML 文件

vb.net - 该表单在构造过程中从默认实例引用自身,这导致无限递归

vb.net - 加密/解密数据流?

c# - 传递参数的最佳实践,可以取两个值

xml - 处理 RTF 编码文件并将其转换为 XML 的好方法是什么?

c# - 如何将对象转换为在运行时提取的类型

.net - 在 RavenDB 中存储对象的对象要求(限制)是什么