C# 将多个 XMLNodes 或 XMLNodeList 从一个 XML 存储复制到另一个 XMLDocument



>我已经搜索了又搜索,但无法准确找到我要找的东西。这可能只是我对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
            }

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

在 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
            }

">

最新更新