这个是cloneNode,它第一个参数为TRUE时,为复制参数节点的子节点,但我下面的程序却不复制子节点,问了好久都没有答案?
下面程序可直接运行#include <stdio.h>
#include <windows.h>
#import <msxml4.dll> raw_interfaces_only
using namespace MSXML2;// Helper function to create a DOM instance. 
IXMLDOMDocument * DomFromCOM()
{
   IXMLDOMDocument *pxmldoc = NULL;   CoCreateInstance(__uuidof(DOMDocument40),
                      NULL,
                      CLSCTX_INPROC_SERVER,
                      __uuidof(IXMLDOMDocument),
                      (void**)&pxmldoc);   pxmldoc->put_async(VARIANT_FALSE);
   pxmldoc->put_validateOnParse(VARIANT_FALSE);
   pxmldoc->put_resolveExternals(VARIANT_FALSE);
   pxmldoc->put_preserveWhiteSpace(VARIANT_TRUE);   return pxmldoc;}
int main(int argc, char* argv[])
{
IXMLDOMDocument *pXMLDom=NULL;
CoInitialize(NULL);
pXMLDom = DomFromCOM(); IXMLDOMNode *pNode1 = NULL;
_variant_t varTyp1((short)NODE_ELEMENT);
    _bstr_t varName1(L"BOOK");
pXMLDom->createNode( varTyp1, varName1, L"", &pNode1 );

IXMLDOMNode *pNode2 =NULL;
_variant_t varTyp2((short)NODE_TEXT);
    _bstr_t varName2(L"book");
pXMLDom->createNode( varTyp2, varName2, L"", &pNode2 );
pNode2->put_text(L"I like read book!"); IXMLDOMNode *pNode3 = NULL;
pNode1->appendChild( pNode2, &pNode3 ); BSTR bstr1;
pNode1->get_xml( &bstr1 );
printf("%S\n", bstr1 ); //复制节点
IXMLDOMNode *pNode4 = NULL;
pNode1->cloneNode( TRUE, &pNode4 ); //TRUE说明复制子节点
BSTR bstr2;
pNode4->get_xml( &bstr2 );
printf("%S\n", bstr2 );
CoUninitialize();
return 0;
}