本文整理汇总了C++中msxml2::IXMLDOMNodePtr::get_baseName方法的典型用法代码示例。如果您正苦于以下问题:C++ IXMLDOMNodePtr::get_baseName方法的具体用法?C++ IXMLDOMNodePtr::get_baseName怎么用?C++ IXMLDOMNodePtr::get_baseName使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类msxml2::IXMLDOMNodePtr
的用法示例。
在下文中一共展示了IXMLDOMNodePtr::get_baseName方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ParseSOAPRequest
int CSOAPUtil::ParseSOAPRequest(char* xml, int xmlSize, SOAP_REQUEST_INFO* info)
{
int res = NO_ERR;
MSXML2::IXMLDOMDocumentPtr xmlDoc;
HRESULT hr = xmlDoc.CreateInstance(MSXML2::CLSID_DOMDocument);
if(FAILED(hr)) {
return ERR_FALSE;
}
xmlDoc->put_async(VARIANT_FALSE);
xmlDoc->put_preserveWhiteSpace(VARIANT_TRUE);
if( LoadDOMDocument(xml, xmlSize, xmlDoc) != NO_ERR ) {
xmlDoc.Release();
xmlDoc = NULL;
return ERR_FALSE;
}
//���
MSXML2::IXMLDOMElementPtr pElemRoot;
MSXML2::IXMLDOMNodePtr mediaNode = NULL;
xmlDoc->get_documentElement(&pElemRoot);
if( pElemRoot == NULL ) {
res = ERR_FALSE;
goto Err_End;
}
for( int i=0; i<pElemRoot->childNodes->length; i++ ) {
MSXML2::IXMLDOMNodePtr bodyNode = pElemRoot->childNodes->Getitem(i);
CComBSTR localName;
bodyNode->get_baseName(&localName);
if( localName == NULL ) {
continue;
}
if(CompareNoCase(L"Body", localName.m_str) == 0 ) {
for( int j=0; j<bodyNode->childNodes->length; j++ ) {
MSXML2::IXMLDOMNodePtr actionNode = bodyNode->childNodes->Getitem(j);
CComBSTR actionName;
actionNode->get_baseName(&actionName);
if( actionName == NULL ) {
continue;
}
info->actionName = actionName;
for( int k=0; k<actionNode->childNodes->length; k++) {
MSXML2::IXMLDOMNodePtr argNode = actionNode->childNodes->Getitem(k);
CComBSTR argName;
argNode->get_baseName(&argName);
if( argName == NULL ) {
continue;
}
CComBSTR argVal;
argNode->get_text(&argVal);
info->argList.insert(pair<wstring,wstring>(argName.m_str, argVal.m_str));
}
}
break;
}
}
Err_End:
xmlDoc.Release();
xmlDoc = NULL;
return res;
}