从文件引入XML数据并插入到一个新文件?
函数createNewXMLfile执行,输出新XML文件,
读入数据子节点列表,但实际插入的节点为奇数个的节点,这样读到一半多点的时候就报超限的错误?
请教!!!!//函数:读一个XML文件,并返回DATA节点下的子节点列表
void LoadXMLAndBackNodeList(
/* in */char cxmlpathfilename[256],//文件名
/*out */MSXML::IXMLDOMNodeList **pchildListdata)
{
*pchildListdata=NULL; CoInitialize(NULL); 
MSXML::IXMLDOMDocumentPtr pDocdata;  
HRESULT hrdata =pDocdata.CreateInstance(__uuidof(MSXML::DOMDocument));  
if(SUCCEEDED(hrdata))  
{  
pDocdata->load(cxmlpathfilename);  
MSXML::IXMLDOMElementPtr pDocElementdata=pDocdata->GetdocumentElement();  
//DATA
MSXML::IXMLDOMElementPtr pElementdata=pDocElementdata->selectSingleNode("DATA");  
//获得子节点列表
pElementdata->get_childNodes(pchildListdata);
}
CoUninitialize();

return;
}//函数创建新XML文件,并将LoadXMLAndBackNodeList读入的节点列表加入到新文件
void createNewXMLfile()
{
CString cstemp="";

CoInitialize(NULL); //初始化COM 环境  
MSXML::IXMLDOMDocumentPtr pDoc;  
HRESULT hr =pDoc.CreateInstance(__uuidof(MSXML::DOMDocument));  
if(!SUCCEEDED(hr))  return; //创建下面行
//<?xml version="1.0" encoding="UTF-8" ?> 
try
{
MSXML::IXMLDOMProcessingInstructionPtr pPI = NULL; 
cstemp.Format("version='%s' encoding='%s'","1.0","UTF-8");
pPI=pDoc->createProcessingInstruction((_bstr_t)"xml", (_bstr_t)cstemp); 
pDoc->appendChild(pPI); 
}
catch (_com_error e)
{
} //0-根  SCL
MSXML::IXMLDOMElementPtr pDocElement=pDoc->createElement("SCL");  
pDoc->appendChild(pDocElement);   //将LoadXMLAndBackNodeList读入的节点列表加入到新文件 MSXML::IXMLDOMNodeList *pchildListdata;
LoadXMLAndBackNodeList("c:\\data.xml",&pchildListdata);
if(pchildListdata != NULL)
{
//获得子节点的个数
long ilen=0;
pchildListdata->get_length(&ilen);
MSXML::IXMLDOMNode *pchildNodedata; for(long i=0;i<ilen;i++)
{
//获得0节点并取名字
pchildNodedata=NULL;
pchildListdata->get_item(i,&pchildNodedata); pDocElement->appendChild(pchildNodedata);  
}
}
pDoc->save("c:\\new.xml");
CoUninitialize();
return;
}//原data.xml文件
<base>
<DATA>
<DOType cdc="INC" id="INC">
  </DOType>
<DOType cdc="INS" id="INS">
  </DOType>
<DOType cdc="LPL" id="LPL">
  </DOType>
<DOType cdc="DPL" id="DPL">
  </DOType>
<DOType cdc="SPS" id="SPS">
  </DOType>
<DOType cdc="MV" id="MV">
  </DOType>
<DOType cdc="CMV" id="CMV">
  </DOType>
</DATA>
</base>
//想生成的文件new.xml
<SCL>
<DOType cdc="INC" id="INC">
  </DOType>
<DOType cdc="INS" id="INS">
  </DOType>
<DOType cdc="LPL" id="LPL">
  </DOType>
<DOType cdc="DPL" id="DPL">
  </DOType>
<DOType cdc="SPS" id="SPS">
  </DOType>
<DOType cdc="MV" id="MV">
  </DOType>
<DOType cdc="CMV" id="CMV">
  </DOType>
</SCL>