static int _ParseSegXml(const char *src, const LocationInfo *location, int len, int *extraLoaction, int extraLen, char *dst) { CMarkup xml; xml.SetDoc(src); if (!xml.FindElem("SEGMENTS")){ return -1; } xml.IntoElem(); if (! xml.FindElem("SEGMENT")){ return -1; } xml.IntoElem(); _doIntersect(location, len, extraLoaction, extraLen); while (xml.FindElem("COLUMN")) { int id = atoi(xml.GetAttrib("ID").c_str()); if (_isExtra(id, extraLoaction, extraLen)) { continue; } if (!isExist(id, location, len)) { xml.RemoveElem(); } } xml.OutOfElem(); xml.OutOfElem(); strcpy(dst, xml.GetDoc().c_str()); return 0; }
//del device void CDeviceEditDlg::DeleteDevice() { HTREEITEM hItem = m_deviceTree.GetSelectedItem(); if ( hItem == NULL ) { return; } DEV_INFO *pDev = (DEV_INFO *)m_deviceTree.GetItemData(hItem); if ( pDev ) { if ( pDev->lLoginID > 0 ) { H264_DVR_Logout(pDev->lLoginID); } Devc_Map::iterator bIter = m_devMap.find( pDev->lID ); if ( bIter != m_devMap.end() ) { m_devMap.erase(bIter); } m_deviceTree.DeleteItem(hItem); CMarkup xml; if (xml.Load(GET_MODULE_FILE_INFO.strPath + "UserInfo.xml")) { while(xml.FindChildElem("ip")) { xml.IntoElem(); xml.FindChildElem("ip2"); if(xml.GetChildData()==pDev->szIpaddress) { xml.RemoveElem(); xml.Save(GET_MODULE_FILE_INFO.strPath + "UserInfo.xml"); } xml.OutOfElem(); } } delete pDev; pDev = NULL; } }