#include "StdAfx.h" #include "MBLoginParseSvrXml.h" CMBLoginParseSvrXml::CMBLoginParseSvrXml(void) { } CMBLoginParseSvrXml::~CMBLoginParseSvrXml(void) { } bool CMBLoginParseSvrXml::ParseLoginCabinetXml( CMBUserNetDiskInfo *pUserNetDiskInfo,CString &strXml,CString &strErrInfo) { CString strSubCount; if( strXml.IsEmpty() ) { strErrInfo = _T("½âÎöµÄxmlΪ¿Õ£¡"); return true; } pugi::xml_document xmlDoc; if (!xmlDoc.load(strXml)) { return false; } pugi::xml_node form = xmlDoc.child(_T("Body")).child(_T("ND")); pUserNetDiskInfo->m_strNDState = form.attribute(_T("State")).value(); pUserNetDiskInfo->m_strNDCapacity = form.attribute(_T("Capacity")).value(); pUserNetDiskInfo->m_strNDUsed = form.attribute(_T("Used")).value(); pUserNetDiskInfo->m_strNDFileCount = form.attribute(_T("FileCount")).value(); pUserNetDiskInfo->m_strNDCanClean = form.attribute(_T("CanClean")).value(); form = xmlDoc.child(_T("Body")); pUserNetDiskInfo->m_strHaveReqApply = form.child_value(_T("HaveReqApply")); pUserNetDiskInfo->m_strFuncData = form.child_value(_T("FuncData")); pUserNetDiskInfo->m_strHasFileTrans = form.child_value(_T("HasFileTrans")); pUserNetDiskInfo->m_strDisOriginFile = form.child_value(_T("DisOriginFile")); form = xmlDoc.child(_T("Body")).child(_T("Cabinet")); for(pugi::xml_node node = form; node; node = node.next_sibling()) { CMBLoginNDCabinetInfo *pCabinetObj = new CMBLoginNDCabinetInfo(); pCabinetObj->m_strID = node.attribute(_T("ID")).value(); pCabinetObj->m_strStatus = node.attribute(_T("Status")).value(); pCabinetObj->m_strOrder = node.attribute(_T("Order")).value(); //pCabinetObj->m_strPType = node.attribute(_T("PType")).value(); //pCabinetObj->m_strPID = node.attribute(_T("PID")).value(); //pCabinetObj->m_strPName = node.attribute(_T("PName")).value(); pCabinetObj->m_strCapacity = node.attribute(_T("Capacity")).value(); //pCabinetObj->m_strUsed = node.attribute(_T("Used")).value(); strSubCount = node.attribute(_T("SubCount")).value(); pCabinetObj->m_nSubCount = _ttoi(strSubCount); pCabinetObj->m_strBkColor = node.attribute(_T("BkColor")).value(); pCabinetObj->m_strFileSFlag = node.attribute(_T("FileSFlag")).value(); //pCabinetObj->m_strDocState = node.attribute(_T("DocState")).value(); pCabinetObj->m_strAdminLogin = node.attribute(_T("AdminLogin")).value(); pCabinetObj->m_strAdminName = node.attribute(_T("AdminName")).value(); pCabinetObj->m_strRecycleAdminLogin = node.attribute(_T("RecycleAdminLogin")).value(); pCabinetObj->m_strRecycleAdminName = node.attribute(_T("RecycleAdminName")).value(); pCabinetObj->m_strArchiveAdmin = node.attribute(_T("ArchiveAdmin")).value(); pCabinetObj->m_strImgFontStyle = node.attribute(_T("ImgFontStyle")).value(); pCabinetObj->m_strHasAce = node.attribute(_T("HasAce")).value(); pCabinetObj->m_strPermit = node.attribute(_T("Permit")).value(); //pCabinetObj->m_strEnableDocMonitor = node.attribute(_T("EnableDocMonitor")).value(); //pCabinetObj->m_strFTR = node.attribute(_T("FTR")).value(); pCabinetObj->m_strName = node.child_value(_T("Name")); //pCabinetObj->m_strMemo = node.child_value(_T("Memo")); pCabinetObj->m_strIsUnit = node.attribute(_T("IsUnit")).value(); // αÔìÀàÐÍ if( pCabinetObj->m_strIsUnit == _T("1") ) { pCabinetObj->m_nFakeType = CMBBaseCabinetObj::CABINET_UNIT; // ±íʾµ¥Î»Îĵµ¹ñ }else{ pCabinetObj->m_nFakeType = CMBBaseCabinetObj::CABINET_DEPART; // ±íʾ²¿ÃÅÎĵµ¹ñ } if( !pUserNetDiskInfo->AddCabinetObj(pCabinetObj) ) { delete pCabinetObj; pCabinetObj = NULL; } } return true; }