void CNewfileDlg::OnTvnEndlabeleditTreeFiles(NMHDR *pNMHDR, LRESULT *pResult) { LPNMTVDISPINFO pTVDispInfo = reinterpret_cast<LPNMTVDISPINFO>(pNMHDR); HTREEITEM hItem = m_tree.GetSelectedItem(); if (!hItem) { *pResult = -1; return; } //CString str1 = m_pTree->GetItemText(hItem) ; CEdit* pedit = m_tree.GetEditControl(); if (!pedit) { *pResult = -1; return; } CString str1; pedit->GetWindowText(str1); if (str1.IsEmpty()) { *pResult = -1; return; } ndxml *xml = (ndxml *)m_tree.GetItemData(hItem); if (!xml) { *pResult = -1; return; } if (0 == ndxml_setattrval(xml, "name", (char*)(LPCTSTR)str1)) { m_tree.SetItemText(hItem, (LPCTSTR)str1); } *pResult = 0; }
int set_xml_value(char *file, char *node_name_list, char *attr_name, char*attr_val, char *node_val) { int ret; ndxml_root xmlfile; ndxml *xnode = 0 ; char *p = node_name_list; char name[128] ; ret = ndxml_load(file, &xmlfile) ; if(0!=ret) { fprintf(stderr,"load xml from %s\n", file) ; return -1; } p = (char*)ndstr_nstr_end(p, name, '.', sizeof(name)) ; if (IS_NUMERALS(name[0])) { xnode = ndxml_getnodei(&xmlfile, ndstr_atoi_hex(name)); } else { xnode = ndxml_getnode(&xmlfile, name) ; } if (!xnode) { fprintf(stderr,"read xml-node %s error \n", name) ; } bool success = true ; while (p && *p) { if (*p == '.') { ++p ; if (!*p) { break ; } } p = (char*) ndstr_nstr_end(p, name, '.', sizeof(name)) ; if (IS_NUMERALS(name[0])) { xnode = ndxml_refsubi(xnode, ndstr_atoi_hex(name)); } else { xnode = ndxml_refsub(xnode, name) ; } if (!xnode) { fprintf(stderr,"read xml-node %s error \n", name) ; success = false ; break ; } } if (success) { success = false; if (attr_name && attr_name[0] && attr_val && attr_val[0]) { ndxml_setattrval(xnode,attr_name, attr_val ) ; success = true ; } if (node_val && node_val[0]) { ndxml_setval(xnode, node_val) ; success = true ; } if (success) { ndxml_save(&xmlfile,file) ; } } ndxml_destroy(&xmlfile); return success ? 0: -1 ; }