#import "msxml.dll"#include <iostream.h>
#import "msxml.dll"#include <iostream.h>
void main()
{
long r=CoInitialize(NULL);
cout<<r;
MSXML::IXMLDOMDocumentPtr pDoc;
try{
HRESULT hr=pDoc.CreateInstance(__uuidof(MSXML::DOMDocument));

 hr=pDoc->load(_variant_t("e:\\lib.conf.xml"));
if(FAILED(hr)) return;
MSXML::IXMLDOMElementPtr childNode ;
MSXML::IXMLDOMNodeListPtr pIDOMNodeList;
pIDOMNodeList=(MSXML::IXMLDOMNodeListPtr)pDoc->getElementsByTagName("Conf");
pIDOMNodeList->reset();
cout<<pIDOMNodeList->Getlength();
pDoc.Release();
}catch(_com_error e){
_bstr_t s=e.Description();
}
CoUninitialize();

}
不管我load什么不存在的文件,hr都正确
getlength也是0

解决方案 »

  1.   

    MSXML::DOMDocument改成MSXML::DOMDocument30试试
      

  2.   

    还有改成导入#import "msxml3.dll"
      

  3.   

    VARIANT_BOOL bLoad = FALSE;
    hr = pDoc->load( _variant_t("e:\\lib.conf.xml"), &bLoad );
    if( FAILED(hr) || !bLoad )
      return;
      

  4.   

    这里有个微软提供的例程
    http://support.microsoft.com/kb/246230
      

  5.   

    好像是加载失败了...
    原来不是用FAILED(hr)...
      

  6.   

    pDOC指向的根节点到底是什么?
    好像是ducoment,不是我所希望的根节点啊
    和Python不一样
      

  7.   

     首先你是用何版本的开发工具 ,因为引用的文件不一样,其它代码应该是一样的。本人是用2008 代码请看  http://blog.csdn.net/lhsxsh/archive/2009/01/09/3738915.aspx