以下代码是希望能捕捉XML字符串不符XML要求的处理,但是在try的时候就错了,而无法捕捉到. try{
childNode=(MSXML2::IXMLDOMElementPtr)
                  (pDoc->selectSingleNode(Node));
}catch (CException e) {
e.GetRuntimeClass();
return ERROR_XML_ILLEGAL;
}

解决方案 »

  1.   

    MSXML2::IXMLDOMDocumentPtr   pdocument   =   NULL;   
    MSXML2::IXMLDOMParseErrorPtr pparseError   =   NULL;   
    MSXML2::IXMLDOMElementPtr   pelement   =   NULL;   
    MSXML2::IXMLDOMNodeListPtr   pnodes   =   NULL;   
    MSXML2::IXMLDOMNodePtr   pnode   =   NULL;   
    //CString   strPathName   =   "51robot.xml";   
    pdocument.CreateInstance(__uuidof(MSXML2::DOMDocument));
    _variant_t varOut;
    varOut=pdocument->load(_variant_t("c:\\y2.xml"));
    if (varOut.boolVal==FALSE)
    {
    //TRACE("load xml error?\n",pdocument->parseError->);
    MSXML2::IXMLDOMParseErrorPtr errPtr = pdocument->GetparseError();
    _bstr_t bstrErr(errPtr->reason); TRACE(_T("Error:\n"));
    TRACE(_T("Code = 0x%x\n"), errPtr->errorCode);
    TRACE(_T("Source = Line : %ld; Char : %ld\n"), errPtr->line, errPtr->linepos);
    TRACE(_T("Error Description = %s\n"), (char*)bstrErr);
    return ;
    }
      

  2.   

    我现在读取的是一个XML字符串,读XML的方法我已经封装过了.
    我现在是想捕捉当这个XML字符串并不能生成XML时,我用pDoc->selectSingleNode(Node))这个方法时就会出错,我希望能够对这个错误加以Catch处理.
      

  3.   

    这个XML字符串并不能生成XML?这个不是很理解,你既然已经成功读了,那么xml肯定应该被加载入document对象当中,是有效的xml除非pDoc->selectSingleNode(Node)你的参数Node不是一个合法的query字符串
      

  4.   

    vieri_ch(尘雨-自在飞花轻似梦,无边丝雨细如愁) 的方法很好.谢谢.