
查看已经保存的.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条)