查看已经保存的.xml文件:用记事本打开。
bool CZWMateralCreateDlg::SaveDataToXML() ///CZWMateralCreateDlg类名 { Zwc::ZXml xml; pugi::xml_parse_result result = xml.loadFile(Z_SP::FP::DlgDefault());///DlgDefault为.xml文件名 if (result.status == pugi::status_file_not_found) Zwc::ZXmlHelper::AppendDeclarationNode(xml); else if (result.status != pugi::status_ok) return FALSE; pugi::xml_node root = Zwc::ZXmlHelper::GetFirstOrCreateChild(xml.root(), _T("xmlRoot")); if (root.empty()) return FALSE; pugi::xml_node materalCreateDlgNode = Zwc::ZXmlHelper::GetFirstOrCreateChild(root, _T("MateralCreateDlg"));///MateralCreateDlg、materalCreateDlgNode if (materalCreateDlgNode.empty()) return FALSE; ///上面的几乎不需要修改 bool bIsCreateExcelTable = ((CButton*)GetDlgItem(IDC_CHECK_ZW_MATERIAL_CREATE_EXCEL))->GetCheck();///获取CheckBox的选中状态 Zwc::ZXmlHelper::GetFirstOrCreateAttribute(materalCreateDlgNode, _T("IsCreateExcelTable")).set_value(bIsCreateExcelTable);///保存一条名为IsCreateExcelTable的记录 CString strExcleTemplatePath; GetDlgItem(IDC_EDIT_ZW_MATERIAL_EXCEL_TEMPLATE)->GetWindowText(strExcleTemplatePath); ///获取Edit Control的文本、IDC_EDIT_ZW_MATERIAL_EXCEL_TEMPLATE为Edit Control的ID Zwc::ZXmlHelper::GetFirstOrCreateAttribute(materalCreateDlgNode, _T("ExcleTemplatePath")).set_value(strExcleTemplatePath); CString strSaveExcleFilePath; GetDlgItem(IDC_EDIT_ZW_MATERIAL_EXCEL_FILE)->GetWindowText(strSaveExcleFilePath); Zwc::ZXmlHelper::GetFirstOrCreateAttribute(materalCreateDlgNode, _T("SaveExcleFilePath")).set_value(strSaveExcleFilePath); bool m_bIsAppendToTableHeader = ((CButton*)GetDlgItem(IDC_CHECK_ZW_MATERIAL_ATTACH_TABLE_HEADER))->GetCheck(); Zwc::ZXmlHelper::GetFirstOrCreateAttribute(materalCreateDlgNode, _T("IsAppendToTableHeader")).set_value(m_bIsAppendToTableHeader); bool m_bIsAppendToTableFooter = ((CButton*)GetDlgItem(IDC_CHECK_ZW_MATERIAL_ATTACH_TABLE_FOOTER))->GetCheck(); Zwc::ZXmlHelper::GetFirstOrCreateAttribute(materalCreateDlgNode, _T("IsAppendToTableFooter")).set_value(m_bIsAppendToTableFooter); bool m_bIsRemoveBothEndEmptyList = ((CButton*)GetDlgItem(IDC_CHECK_ZW_MATERIAL_REMOVE_BOTH_END_EMPTY_LIST))->GetCheck(); Zwc::ZXmlHelper::GetFirstOrCreateAttribute(materalCreateDlgNode, _T("IsRemoveBothEndEmptyList")).set_value(m_bIsRemoveBothEndEmptyList); bool m_bIsShowPage = ((CButton*)GetDlgItem(IDC_CHECK_ZW_MATERIAL_IS_SHOW_PAGE))->GetCheck(); Zwc::ZXmlHelper::GetFirstOrCreateAttribute(materalCreateDlgNode, _T("IsShowPage")).set_value(m_bIsShowPage); xml.saveFile(Z_SP::FP::DlgDefault()); return TRUE; }
bool CZWMateralCreateDlg::LoadDataFromXML(StructMatarialCreate &structmetariaCreateData) {///StructMatarialCreate已定义的结构体,做项目时需要给结构体对象赋值,故设置结形参。也可以不加形参,具体问题具体分析 Zwc::ZXml xml; pugi::xml_parse_result result = xml.loadFile(Z_SP::FP::DlgDefault()); if (result.status != pugi::status_ok) return FALSE; pugi::xml_node root = xml.root().child(_T("xmlRoot")); if (root.empty()) return FALSE; pugi::xml_node materalCreateDlgNode = root.child(_T("MateralCreateDlg")); if (materalCreateDlgNode.empty()) return FALSE; structmetariaCreateData.m_bIsCreateExcelFile = materalCreateDlgNode.attribute(_T("IsCreateExcelTable")).as_bool();///获取名为IsCreateExcelTable的记录,是bool类型的 structmetariaCreateData.m_strExcleTemplatePath = materalCreateDlgNode.attribute(_T("ExcleTemplatePath")).as_string(); structmetariaCreateData.m_strSaveExcleFilePath = materalCreateDlgNode.attribute(_T("SaveExcleFilePath")).as_string(); structmetariaCreateData.m_bIsAttachTableHeader = materalCreateDlgNode.attribute(_T("IsAppendToTableHeader")).as_bool(); structmetariaCreateData.m_bIsAttachTableFooter = materalCreateDlgNode.attribute(_T("IsAppendToTableFooter")).as_bool(); structmetariaCreateData.m_bIsRemoveBothEndEmptyList = materalCreateDlgNode.attribute(_T("IsRemoveBothEndEmptyList")).as_bool(); structmetariaCreateData.m_bIsShowPage = materalCreateDlgNode.attribute(_T("IsShowPage")).as_bool(); return TRUE; }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)