社区
ATL
帖子详情
如何将对象保存到一个XML文件
gooore
2010-04-13 09:35:58
求思路,或相关文件信息皆可
...全文
343
11
打赏
收藏
如何将对象保存到一个XML文件
求思路,或相关文件信息皆可
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
oldmanzhao
2010-04-22
打赏
举报
回复
可以用TinyXML或者CMarkup,都是轻量级的XML组件,很管用。我们公司的产品界面布局的保存用的就是TinyXML。网上有很多示例,一搜一大把。
redsunxin
2010-04-22
打赏
举报
回复
bool SaveXml(BOOL bFlagSaveAs, CString strPath)
{
CString strFilePath = _T("");
if (bFlagSaveAs )
{
strFilePath.Format(_T("%s%s"),strPath,LANGUAGE_PROJECT_FILENAME);
}
else
{
strFilePath.Format(_T("%s%s"),GetProjectPath(),LANGUAGE_PROJECT_FILENAME);
}
CWaitCursor wati;
CComPtr<IXMLDOMDocument> pDoc;
HRESULT hr = pDoc.CoCreateInstance(__uuidof(DOMDocument));
if (FAILED(hr))
{
pDoc.Detach();
return false;
}
try
{
//设置根节点
CComPtr<IXMLDOMElement> xmlRoot ; //根节点
pDoc->createElement(BSTR(_T("FontTable")),&xmlRoot);
pDoc->appendChild(xmlRoot,NULL);
//Language节点
for (int i = 0 ; i < m_LanguageInfo_ary.GetSize() ; i++)
{
CString strLanID = _T("");
CString strLanHAlign = _T("");
CString strLanVAlign = _T("");
Language_Info info = m_LanguageInfo_ary.GetAt(i);
strLanID.Format(_T("%d"),info.iLanguageID);
strLanHAlign.Format(_T("%d"),info.HAlignStyle);
strLanVAlign.Format(_T("%d"),info.VAlignStyle);
//设置Language节点的属性
CComPtr<IXMLDOMElement> xmlLanElement;
hr = pDoc->createElement(BSTR(LANGUAGE_ITEM_LANGUAGE),&xmlLanElement);
xmlRoot->appendChild(xmlLanElement,NULL);
xmlLanElement->setAttribute(BSTR(_T("Name")) ,CComVariant(info.strLanguageName));
xmlLanElement->setAttribute(BSTR(_T("H_Align")) ,CComVariant(info.HAlignStyle));
xmlLanElement->setAttribute(BSTR(_T("V_Align")) ,CComVariant(info.VAlignStyle));
xmlLanElement->setAttribute(BSTR(_T("H_Offset")) ,CComVariant(info.H_Offset));
xmlLanElement->setAttribute(BSTR(_T("V_Offset")) ,CComVariant(info.V_Offset));
//创建Style节点
CResourceList::iterator it = info.StyleMgr.m_ResourceList.begin();
for (;it!=info.StyleMgr.m_ResourceList.end();it++)
{
CResourceItem* pStyleItem = (*it);
CComPtr<IXMLDOMElement> xmlStyleElement;
hr = pDoc->createElement(BSTR(_T("Style")),&xmlStyleElement);
xmlLanElement->appendChild(xmlStyleElement,NULL);
xmlStyleElement->setAttribute(BSTR(_T("Name")) ,CComVariant(pStyleItem->m_strResourceName));
xmlStyleElement->setAttribute(BSTR(_T("ImageFormat")) ,CComVariant(pStyleItem->m_nType));
xmlStyleElement->setAttribute(BSTR(LANGUAGE_STYLEATTR_RDT) ,CComVariant(pStyleItem->m_strRawDataType));
xmlStyleElement->setAttribute(BSTR(_T("UseTransColor")) ,CComVariant(pStyleItem->m_bUseTranColor));
DWORD dwColor = (DWORD)pStyleItem->m_TranColor;
xmlStyleElement->setAttribute(BSTR(_T("TransColor")) ,CComVariant(dwColor));
xmlStyleElement->setAttribute(BSTR(_T("C2CTbl")) ,CComVariant(pStyleItem->m_CCTableName));
xmlStyleElement->setAttribute(BSTR(_T("C2PTbl")) ,CComVariant(pStyleItem->m_CPTableName));
}
}
hr = pDoc->save(CComVariant(strFilePath));
CFormatXML::Format(strFilePath);
if (FAILED(hr))
{
pDoc.Detach();
return false;
}
pDoc.Detach();
}
catch (CFileException* e)
{
e->Delete();
pDoc.Detach();
return false;
}
return true;
}
sgzwiz
2010-04-22
打赏
举报
回复
为何不直接用MFC的序列化来保存对象
http://it.sohu.com/20040723/n221164254.shtml
gooore
2010-04-22
打赏
举报
回复
有没有简单的例子。
谢谢了
qinwei
2010-04-16
打赏
举报
回复
XML Serial 序列化 使用 MSXML2.dll
jameshooo
2010-04-15
打赏
举报
回复
支持序列化有很多方式,如果你的对象是COM组件,你可以选择实现IPersistStream[Init]、IPersistStorage、IPersistPropertyBag接口之一,如果你的对象是MFC类,可以直接实现序列化,如果是其它类型,序列化过程可以完全自定义
gooore
2010-04-15
打赏
举报
回复
up。。。。
求助
Eleven
2010-04-13
打赏
举报
回复
这个要你自己定义吧,你要定义要将该对象所属类的那些成员写入,如何组织该结结构。。。
jameshooo
2010-04-13
打赏
举报
回复
首先让对象支持序列化
序列化后的二进制数据使用某种编码(比如BASE64)转换成文本,如果本身就是文本则无需此步
把文本保存到XML中的CDATA节中
gooore
2010-04-13
打赏
举报
回复
请问你说的是不是让对象支持IStream接口?
你那里有例子吗?可不可以共享一个。非常感谢
[Quote=引用 1 楼 jameshooo 的回复:]
首先让对象支持序列化
序列化后的二进制数据使用某种编码(比如BASE64)转换成文本,如果本身就是文本则无需此步
把文本保存到XML中的CDATA节中
[/Quote]
unity3d读取xml插件Mono.Xml
unity3d读取xml插件Mono.Xml,用于读取
xml文件
xmlbeans.jar
xmlbeans-current.zip包含料xmlbean中的几个jar文件,主要是有些项目出现这样的错误,尤其是在web2.0(s2+s2+h3)时
Python操作XML教程:读取、写入、修改和
保存
XML文档_python 修改
xml文件
XML是一种常见的数据交换格式,在许多应用中都被广泛使用。通过掌握Python操作XML的基础知识,您将能够轻松地处理XML数据,从而实现数据的提取、修改和存储。这是
一个
简单的Python操作XML的教程,涵盖了读取、写入、修改和
保存
XML文档的基本步骤。通过遍历根元素和其子元素,可以访问XML文档中的各个元素和其属性。模块,该模块提供了解析和操作XML文档的功能。方法将修改后的XML文档
保存
到文件中。函数解析XML文档。
对象
,表示整个XML文档的树结构。属性修改元素的文本内容,使用。方法修改元素的属性。
Python操作XML教程:读取、写入、修改和
保存
XML文档
XML是一种常见的数据交换格式,在许多应用中都被广泛使用。通过掌握Python操作XML的基础知识,您将能够轻松地处理XML数据,从而实现数据的提取、修改和存储。这是
一个
简单的Python操作XML的教程,涵盖了读取、写入、修改和
保存
XML文档的基本步骤。通过遍历根元素和其子元素,可以访问XML文档中的各个元素和其属性。模块,该模块提供了解析和操作XML文档的功能。方法将修改后的XML文档
保存
到文件中。函数解析XML文档。
对象
,表示整个XML文档的树结构。属性修改元素的文本内容,使用。方法修改元素的属性。
java使用xml
保存
数据_java实现
xml文件
读取并
保存
到
对象
首先浅聊一下解析xml的四种方式:1.DOM方式:有缺点但是这个缺点却也是他的优点。下面详细介绍:以树形的层次结构组织节点或信息片断集合,可以获得同
一个
文档中的多处不同数据。使用起来简单。优点是:可以获得同
一个
文档中的多处不同数据,使用起来简单。缺点是:需要加载整个
xml文件
,这对内存和资源有一定的消耗,如果是小型的
xml文件
可以尝试用 DOM方式解析。经测试当用DOM方式读取大小为10M的文件时...
ATL
3,248
社区成员
48,529
社区内容
发帖
与我相关
我的任务
ATL
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
复制链接
扫一扫
分享
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章