本帖最后由 lover4ever 于 2010-02-21 14:42:29 编辑

解决方案 »

  1.   

    我把代码改成这样了还是不行,加载失败,高手帮帮忙吧
    HRESULT hr;
    CComPtr<IXMLDOMDocument> m_iXMLDoc;
    CComPtr<IXMLDOMElement> iRooterElm=NULL;
    if(FAILED( m_iXMLDoc.CoCreateInstance( __uuidof( DOMDocument )))) goto RETURN_FALSE;
    VARIANT_BOOL bSuccess=false;
    m_iXMLDoc->put_async(FALSE);
    m_iXMLDoc->put_resolveExternals(VARIANT_FALSE);
    hr=m_iXMLDoc->load(CComVariant("temp.txt"), &bSuccess );
    if(FAILED(hr)) goto RETURN_FALSE;
    if(VARIANT_FALSE==bSuccess) goto RETURN_FALSE;
    //if(FAILED(m_iXMLDoc->get_documentElement( &iRooterElm ))) goto RETURN_FALSE;
    //if(NULL== iRooterElm) goto RETURN_FALSE;
    IXMLDOMNode* pNode=NULL;
    IXMLDOMNode* pRootNode=NULL;
    IXMLDOMNodeList* pNodeList=NULL;
    iRooterElm->get_childNodes(&pNodeList);
    if(pNodeList==NULL) goto RETURN_FALSE;
    hr=m_iXMLDoc->selectSingleNode(_T("ArrayOfString"),&pRootNode);
    if(FAILED(hr)) goto RETURN_FALSE;
    if(E_INVALIDARG==hr)
    {
    ::MessageBox(NULL,TEXT("invalid arg"),TEXT("ERR:"),MB_OK);
    }
    if(NULL==pRootNode) goto RETURN_FALSE;
    long lLen=0;
    pNodeList->get_length(&lLen);
    BSTR content;
    for(long i=0;i<lLen;++i)
    {
    pNodeList->get_item(i,&pNode);
    pNode->get_text(&content);
    comboProvince.AddString((wchar_t*)content);
    }
      

  2.   

    这可不仅仅是代码问题,你的xml文件也必须满足特定要求的,如果要选择的节点不存在,返回null实际是很正常的
      

  3.   

    我改成第二段代码后,执行到if(VARIANT_FALSE==bSuccess) goto RETURN_FALSE; 这就跳转了,我的xml文件是这样的:
    <?xml version="1.0" encoding="utf-8"?>
    <ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://WebXml.com.cn/">
      <string>直辖市</string>
      <string>特别行政区</string>
      <string>黑龙江</string>
      <string>吉林</string>
      <string>辽宁</string>
      <string>内蒙古</string>
      <string>河北</string>
      <string>河南</string>
      <string>山东</string>
      <string>山西</string>
      <string>江苏</string>
      <string>安徽</string>
      <string>陕西</string>
      <string>宁夏</string>
      <string>甘肃</string>
      <string>青海</string>
      <string>湖北</string>
      <string>湖南</string>
      <string>浙江</string>
      <string>江西</string>
      <string>福建</string>
      <string>贵州</string>
      <string>四川</string>
      <string>广东</string>
      <string>广西</string>
      <string>云南</string>
      <string>海南</string>
      <string>新疆</string>
      <string>西藏</string>
      <string>台湾</string>
      <string>亚洲</string>
      <string>欧洲</string>
      <string>非洲</string>
      <string>北美洲</string>
      <string>南美洲</string>
      <string>大洋洲</string>
    </ArrayOfString>