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); //为什么取不到呢?
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); //为什么取不到呢?
2--是不是不能用IXMLDOMNodePtr获得selectNodes的结果,只能用IXMLDOMNodeListPtr ?
---------------------------
应该没有这个问题。试试先通过pXmlDom获得根节点,然后再使用selectSingleNode