【问题标题】:C# Copying Multiple XMLNodes or XMLNodeList from One XMLDocument to AnotherC# 将多个 XMLNode 或 XMLNodeList 从一个 XMLDocument 复制到另一个
【发布时间】:2018-02-28 19:55:35
【问题描述】:

我已经搜索和搜索,但无法准确找到我要查找的内容。这可能只是我对 XML 缺乏了解,因为这是我第一次真正玩弄它。

基本上,我正在连接到 Pardot API 并请求所有潜在客户。但是,数据是分页的,所以我一次只能得到 200 个潜在客户,并且它们以 XML 格式返回。我需要做的是,在一个不断遍历分页数据并获取 XML 响应的循环中,我需要将每个响应的 XML 数据复制到一个新文档中,该文档最后将包含所有回复。

我有类似的东西,它在第一次迭代时有效,但在下一次迭代中它在 finalXmlDoc.AppendChile(impNode); 失败并显示错误消息:“此文档已经有一个 'DocumentElement' 节点。”

            var xmlDoc = new XmlDocument();
            var finalXmlDoc = new XMLDocument();

            while (true)
            {
                 //BUILD URL FOR EACH ITERATION AND DO AN HTTP GET                                       

                 xmlDoc.Load(prospectResp);

                 var nodes = xmlDoc.DocumentElement.SelectNodes("/rsp/result/prospect");

                 foreach (XmlNode node in nodes)
                 {
                     impNode = finalXmlDoc.ImportNode(node, true);

                     finalXmlDoc.AppendChild(impNode);
                 }                
                 // EVENTUALLY BREAK LOOP AND EXPORT finalXmlDoc
            }

这是我的搜索让我得到的,但我猜有一种更简单的方法可以做到这一点。

【问题讨论】:

    标签: c# xml copy xmldocument xmlnode


    【解决方案1】:

    在您的 finalXML 中创建一个根元素,并将所有内容附加到 DocumentElement。只需加载一个简单的“

    var xmlDoc = new XmlDocument();
                var finalXmlDoc = new XMLDocument();
                finalXmlDoc.LoadXml( "<xml/>" );
    
    
                while (true)
                {
                     //BUILD URL FOR EACH ITERATION AND DO AN HTTP GET                                       
    
                     xmlDoc.Load(prospectResp);
    
                     var nodes = xmlDoc.DocumentElement.SelectNodes("/rsp/result/prospect");
    
                     foreach (XmlNode node in nodes)
                     {
                         impNode = finalXmlDoc.ImportNode(node, true);
    
                         finalXmlDoc.DocumentElement.AppendChild(impNode);
                     }                
                     // EVENTUALLY BREAK LOOP AND EXPORT finalXmlDoc
                }
    

    "

    【讨论】:

      猜你喜欢
      • 2011-01-26
      • 1970-01-01
      • 2012-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-27
      相关资源
      最近更新 更多