#include "StdAfx.h" #include "MBShareDocMgr.h" CMBShareDocMgr::CMBShareDocMgr(void) { } CMBShareDocMgr::~CMBShareDocMgr(void) { } bool CMBShareDocMgr::AddDocInfo(CMBShareDocInfo *pDocInfo) { return AddDocObj(pDocInfo); } CMBShareDocInfo* CMBShareDocMgr::GetDocInfo( CString strID ) { return (CMBShareDocInfo*)GetDocObj(strID); } bool CMBShareDocMgr::RemoveAllDocInfo() { return RemoveAllDocObj(); } bool CMBShareDocMgr::ParseXml( CString &strXml,CString &strErrInfo ) { if( strXml.IsEmpty() ) { strErrInfo = _T("CMBDocMgr::ParseXml,²ÎÊýstrXmlΪ¿Õ£¡"); return false; } CString strFileSize; pugi::xml_document xmlDoc; if (!xmlDoc.load(strXml)) { return false; } pugi::xml_node form = xmlDoc.child(_T("Body")).child(_T("Doc")); for(pugi::xml_node node = form; node; node = node.next_sibling(_T("Doc"))) { CMBShareDocInfo *pDocInfo = new CMBShareDocInfo(); pDocInfo->m_strID = node.attribute(_T("ID")).value(); pDocInfo->m_strName = node.child_value(_T("Name")); pDocInfo->m_strStatus = node.attribute(_T("Status")).value(); pDocInfo->m_strFileType = node.attribute(_T("FileType")).value(); pDocInfo->m_strFileTime = node.attribute(_T("FileTime")).value(); strFileSize = node.attribute(_T("FileSize")).value(); pDocInfo->m_nFileSize = _ttoi(strFileSize); pDocInfo->m_strDTCreate = node.attribute(_T("DTCreate")).value(); pDocInfo->m_strCreatorID = node.attribute(_T("CreatorID")).value(); pDocInfo->m_strCreatorName = node.attribute(_T("CreatorName")).value(); pDocInfo->m_strLocker = node.attribute(_T("Locker")).value(); pDocInfo->m_strLockerName = node.attribute(_T("LockerName")).value(); pDocInfo->m_strLockTime = node.attribute(_T("LockTime")).value(); pDocInfo->m_strTags = node.attribute(_T("Tags")).value(); pDocInfo->m_strName = node.child_value(_T("Name")); // ThumbURL pDocInfo->m_strThumbURL = node.child_value(_T("ThumbURL")); if( !AddDocInfo(pDocInfo) ) { // ÖØÖÃËõÂÔͼµØÖ· GetDocInfo( pDocInfo->m_strID )->m_strThumbURL = pDocInfo->m_strThumbURL; delete pDocInfo; pDocInfo = NULL; } } return true; }