MSXML2::IXMLDOMDocumentPtr pXmlDom;
HRESULT hr;
hr=pXmlDom.CreateInstance("Msxml2.DOMDocument.4.0");
if(pXmlDom->loadXML(LPCTSTR(strOut))==S_FALSE){
//装载XML失败
ErrInfo.strPos="loadXML";
ErrInfo.intReturn=-1;
ErrInfo.strSysErrDes=CGlbModule::ConvertBSTRToCString(pXmlDom->parseError->reason);
ErrInfo.strDes=" Load Xml string failed!";
throw(ErrInfo);
}
MSXML2::IXMLDOMNodePtr NodePtr;
MSXML2::IXMLDOMNodeListPtr iXMLChild;
MSXML2::IXMLDOMNodeListPtr iXMLChilds;
MSXML2::IXMLDOMNodePtr fNodePtr;
MSXML2::IXMLDOMNodePtr sNodePtr;
_bstr_t bstrXMLQueryString=_com_util::ConvertStringToBSTR(LPCTSTR("//MSG/META/RVAL"));
NodePtr = pXmlDom->selectSingleNode(bstrXMLQueryString);  //为什么取不到呢?
strTemp=CGlbModule::ConvertBSTRToCString(NodePtr->text);strOut 是一个XML格式的CString:
<MSG>
  <META>
    <DTTM>20050922053132</DTTM>
    <TYPE>GAWB</TYPE>
    <RVAL>SUCC</RVAL>
  </META>
</MSG>
NodePtr = pXmlDom->selectSingleNode(bstrXMLQueryString);  //为什么取不到呢?

解决方案 »

  1.   

    1--我能够保证节点的唯一性
    2--是不是不能用IXMLDOMNodePtr获得selectNodes的结果,只能用IXMLDOMNodeListPtr ?
      

  2.   

    --是不是不能用IXMLDOMNodePtr获得selectNodes的结果,只能用IXMLDOMNodeListPtr ?
    ---------------------------
    应该没有这个问题。试试先通过pXmlDom获得根节点,然后再使用selectSingleNode
      

  3.   

    用bstr_t bstrXMLQueryString=_com_util::ConvertStringToBSTR(LPCTSTR("/MSG/META/RVAL"));
      

  4.   

    //MSG/META/RVAL是添加节点的时候用