// Delete a key or chain of keys bool CXMLprefs::DeleteSetting(const stringT &csBaseKeyName, const stringT &csValueName) { // m_pXMLDoc may be NULL if Load() not called before DeleteSetting, // or if called & failed if (m_pXMLDoc == NULL && !CreateXML(false)) return false; bool bRetVal = false; stringT csKeyName(csBaseKeyName); if (!csValueName.empty()) { csKeyName += _T("\\"); csKeyName += csValueName; } pugi::xml_node base_node = m_pXMLDoc->first_element_by_path(csKeyName.c_str(), _T('\\')); if (base_node == NULL) return false; pugi::xml_node node_parent = base_node.parent(); if (node_parent != NULL) { size_t last_slash = csKeyName.find_last_of(_T("\\")); stringT sKey = csKeyName.substr(last_slash + 1); bRetVal = node_parent.remove_child(sKey.c_str()); } return bRetVal; }
QString UPnPFeature::toXML() { QString xml; xml = "<Feature name=\"" + m_name + "\" version=\"" + QString::number(m_version) + "\">\r\n"; xml += CreateXML(); xml += "</Feature>\r\n"; return xml; }
NotificationIntiate::NotificationIntiate( char * msg , char * channelName ,char * serverName, char * serverIP, int portNumber, char * DID , char * CID ){ char xmlData[SIZEOFCHARARRAYBIGGER]; commFunc = new CommonClass(); CreateXML( xmlData, msg , channelName, serverName,DID,CID ); if ( commFunc->CreateConnectionClient(serverIP, portNumber,xmlData ) ){ cout<<"\nSuccessFully Send\n"; } Delete(); }
bool CXMLprefs::Load() { // Already loaded? if (m_pXMLDoc != NULL) return true; bool alreadyLocked = m_bIsLocked; if (!alreadyLocked) { stringT locker; if (!Lock(locker)) { LoadAString(m_Reason, IDSC_XMLLOCK_CFG_FAILED); m_Reason += _T("\n"); m_Reason += locker; // Show filename for troubleshooting m_Reason += _T("\n"); m_Reason += m_csConfigFile; return false; } } if (!CreateXML(true)) { LoadAString(m_Reason, IDSC_XMLCREATE_CFG_FAILED); return false; } pugi::xml_parse_result result = m_pXMLDoc->load_file(m_csConfigFile.c_str()); if (!result) { // An XML load error occurred so display the reason // Note: "result.description()" returns char* even in Unicode builds. stringT sErrorDesc; sErrorDesc = pugi::as_wide(result.description()); Format(m_Reason, IDSC_XMLFILEERROR, sErrorDesc.c_str(), m_csConfigFile.c_str(), result.offset); delete m_pXMLDoc; m_pXMLDoc = NULL; return false; } // load failed // If we locked it, we should unlock it... if (!alreadyLocked) Unlock(); // If OK - delete any error message m_Reason.clear(); return true; }
// Set a string value int CXMLprefs::Set(const stringT &csBaseKeyName, const stringT &csValueName, const stringT &csValue) { // m_pXMLDoc may be NULL if Load() not called before Set, // or if called & failed if (m_pXMLDoc == NULL && !CreateXML(false)) return false; int iRetVal = XML_SUCCESS; // Add the value to the base key separated by a '\' stringT csKeyName(csBaseKeyName); csKeyName += _T("\\"); csKeyName += csValueName; iRetVal = SetPreference(csKeyName, csValue); return iRetVal; }
STDMETHODIMP CCardProcess::iATLPatchCard(BSTR szCardXML, BSTR pszCardCoverDataXml, BSTR pszPrinterType, BSTR pszCardCoverXml, LONG* nRet) { // TODO: 在此添加实现代码 _bstr_t CreateXML(szCardXML); _bstr_t Typebstr(pszPrinterType); _bstr_t CardDatabstr(pszCardCoverDataXml); _bstr_t CardCoverbstr(pszCardCoverXml); char *strINXML = (char*)CreateXML; char *szType = (char*)Typebstr; char *szCardData = (char*)CardDatabstr; char *szCover = (char*)CardCoverbstr; if (szType != NULL && szCardData != NULL && szCover != NULL && strINXML != NULL){ int ret = iPatchCard(strINXML, szCardData, szType, szCover); GetErrInfo(ret, (*nRet)); }else{ *nRet = -7; } return S_OK; }
BOOL CPlayerWnd::SaveXML(CXMLElement* pXML) { ASSERT( pXML != NULL ); CFile pFile; if ( ! pFile.Open( _T("Xhistory.xml"), CFile::modeWrite|CFile::modeCreate ) ) return FALSE; CXMLElement* pParent = LoadXML( pXML->GetName() ); if ( ! pParent ) pParent = CreateXML(); pParent->GetElementByName( pXML->GetName() )->Delete(); pParent->AddElement( pXML ); CString strXML; strXML = pParent->ToString( TRUE, TRUE ); pFile.Write( (LPCSTR)strXML, strXML.GetLength() ); pFile.Close(); pXML->Detach(); pParent->Delete(); return TRUE; }
int CXMLprefs::SetShortcuts(const stringT &csBaseKeyName, std::vector<st_prefShortcut> v_shortcuts) { // m_pXMLDoc may be NULL if Load() not called before Set, // or if called & failed if (m_pXMLDoc == NULL && !CreateXML(false)) return XML_LOAD_FAILED; int iRetVal = XML_SUCCESS; // csBaseKeyName is "Pwsafe_Settings\host\user\Shortcuts" // Even if this does not exist, "Pwsafe_Settings\host\user" must so we can just go // up one level to create it (see SetPreference for when we don't know how many levels // we have to go up before we find an existing node stringT csKeyName(csBaseKeyName); // Get all shortcuts pugi::xml_node all_shortcuts = m_pXMLDoc->first_element_by_path(csKeyName.c_str(), _T('\\')); // Not there - go up one node and try to add it. if (all_shortcuts == NULL) { // Add node - go up a level in path size_t last_slash = csKeyName.find_last_of(_T("\\")); stringT sPath = csKeyName.substr(0, last_slash); stringT sKey = csKeyName.substr(last_slash + 1); all_shortcuts = m_pXMLDoc->first_element_by_path(sPath.c_str(), _T('\\')); ASSERT(all_shortcuts != NULL); if (all_shortcuts != NULL) { all_shortcuts = all_shortcuts.append_child(sKey.c_str()); } } // If still NULL - give up!!! if (all_shortcuts == NULL) return XML_PUT_TEXT_FAILED; for (size_t i = 0; i < v_shortcuts.size(); i++) { pugi::xml_node shortcut = all_shortcuts.append_child(_T("Shortcut")); // If we can't add this - give up! if (shortcut == NULL) return XML_PUT_TEXT_FAILED; shortcut.set_value(_T("")); pugi::xml_attribute attrib; attrib = shortcut.append_attribute(_T("id")); attrib = v_shortcuts[i].id; attrib = shortcut.append_attribute(_T("Ctrl")); attrib = (v_shortcuts[i].cModifier & PWS_HOTKEYF_CONTROL) == PWS_HOTKEYF_CONTROL ? 1 : 0; attrib = shortcut.append_attribute(_T("Alt")); attrib = (v_shortcuts[i].cModifier & PWS_HOTKEYF_ALT) == PWS_HOTKEYF_ALT ? 1 : 0; attrib = shortcut.append_attribute(_T("Shift")); attrib = (v_shortcuts[i].cModifier & PWS_HOTKEYF_SHIFT) == PWS_HOTKEYF_SHIFT ? 1 : 0; // wxWidgets only - set values but do not use in Windows MFC attrib = shortcut.append_attribute(_T("Meta")); attrib = (v_shortcuts[i].cModifier & PWS_HOTKEYF_META) == PWS_HOTKEYF_META ? 1 : 0; attrib = shortcut.append_attribute(_T("Win")); attrib = (v_shortcuts[i].cModifier & PWS_HOTKEYF_WIN) == PWS_HOTKEYF_WIN ? 1 : 0; attrib = shortcut.append_attribute(_T("Cmd")); attrib = (v_shortcuts[i].cModifier & PWS_HOTKEYF_CMD) == PWS_HOTKEYF_CMD ? 1 : 0; attrib = shortcut.append_attribute(_T("Key")); attrib = v_shortcuts[i].siVirtKey; } return iRetVal; }
int main(int argc, char **argv) { /* int i; char *pcDocRoot = NULL; int iPort = 0; for (i = 1; i < argc; i++) { if (i + 1 < argc && strcmp(argv[i], "-d") == 0) pcDocRoot = argv[++i]; if (i + 1 < argc && strcmp(argv[i], "-p") == 0) iPort = String2Long(argv[++i]); } if (pcDocRoot == NULL || iPort == 0) { fprintf(stderr, "Usage:\n -d HtmlDir -p port\n"); return 0; } //RegisterEmbedFun("/Jpeg/*.jpg", tt, NULL); //RegisterEmbedFun("*", tt, NULL); RegisterEmbedFun("test", t, NULL); */ char *pcDocRoot = "./"; int aiPort[] = {80, 0}; int aiSSLPort[] = {443, 0}; RegisterEmbedFun("/", text, NULL); StartThttpdEx3(pcDocRoot, aiPort, aiSSLPort, 10, 100, 3, NULL, NULL, NULL); #if 0 XML *pXML = CreateXML("eee"); XML *pSub; XML *pSub1; XML *pSub2; SetString(pXML->plAttrib, "type", "text"); SetString(pXML->plAttrib, "value", "mytest"); SetString(pXML->plAttrib, "name", "test"); pSub = AppendXML(pXML, NULL); printf("%d %d %d\n", pXML, pSub, GetParentXML(pSub) ); return 0; pSub = CreateXML("sub"); pSub1 = AppendXML(pXML, pSub); SetString(pSub1->plAttrib, "sss", "eeeee"); pSub = AppendXML(pXML, NULL); AppendXML(pSub, NULL); AppendXML(pSub, NULL); AppendXML(pSub, NULL); DumpXML(pXML, NULL, NULL); PTI; pSub2 = CreateXMLText("how ass s ss s s "); pSub2 = AppendXML(pSub1, pSub2); DumpXML(pSub1, NULL, NULL); PTI; pSub1 = DetachXML(pXML, pSub1); DumpXML(pXML, NULL, NULL); PTI; DumpXML(pSub1, NULL, NULL); DeleteXML(pXML); DeleteXML(pSub1); pt_mem_result(); #endif }
void Failover::ReplaceDownServerDIDWithBackUPServerDID(const char *DID, int sysDID,DataBaseAccess * dBA, vector<string> DeviceIP ){ GetInformationAboutFromAllOtherServer(DeviceIP, DID); CreateXML(dBA,DID, sysDID ); bootLoader->StartBoot(); }
void MainWindow::closeEvent(QCloseEvent *ev) { CreateXML(); }