我已经进行了搜索和搜索,但我们无法找到我正在寻找的内容。可能只是我对XML缺乏了解,因为这是我第一次真正使用它。
基本上我连接到Pardot API并请求所有潜在客户。但是,数据是分页的,所以我一次只能获得200个潜在客户,并且它们以XML格式返回。我需要做的是,在循环中不断浏览分页数据并获取XML响应时,我需要将每个响应的XML数据复制到一个新文档中,最后将会有所有回复的内容。
我有类似的东西,它适用于第一次迭代,但是在下一次迭代期间,它在finalXmlDoc.AppendChile(impNode);
失败并显示错误消息:"此文档已经有一个' DocumentElement&# 39; 。节点"
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
}
这是我的搜索让我得到的,但我猜有一个更简单的方法来做到这一点。
答案 0 :(得分:0)
在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
}
“