一个简单的关于 XML 的读取与保存的问题 本人是VC++的新手,现在需要解决XML文件的读取与保存,搞了一天了也没什么头绪,请哪个高手帮帮忙。最好能写个完整的程序(直接帖出来也行)在线等。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 源码太复杂而且是公司的,不方便完全贴出来,我说下思路:我是通过微软的xml解析器读取的,首先你要安装SDK,去微软网站有下.然后在你的代码处加上#import <msxml4.dll> raw_interfaces_onlyusing namespace MSXML2;接着你定义一个IXMLDOMDocumentPtr m_pXmlDomDocument;初始化接口,就可以操作xml各个结点了,具体信息你可以查看SDK自带的帮助信息. 我做的那个是公司的一个DLL,解析SVG文件(基于XML)格式的图形,然后显示.因为是公司的源码,不方便传播,请见谅.你有什么问题说出来看能不能帮你的忙. 我也是刚刚开始学习VC++,有好多东西都不懂。昨天做个东西要用到XML,但是我对这个是一点都不了解的,在网上找了点资料看了看但是还是不知道怎么去写代码,写了也是有一大堆的错误,所以想找个例子看看你能不能给我看看你的部分代码,比如头文件的设置、变量的定义、还有就是读写XML的操作代码(如果不能就算了,仍然要谢谢你的!很感谢) 是这样,你首先要在头文件加上这样的语句,才能使用SDK.#import <msxml4.dll> raw_interfaces_onlyusing namespace MSXML2;然后我先假设你把他封装为一个类,在类里定义一个智能指针IXMLDOMDocumentPtr m_pXmlDomDocument;/////////////下面是的步骤写成函数封装起来/////////////////现在还不能用,需要这样的操作CoCreateInstance(__uuidof(DOMDocument40), NULL, CLSCTX_INPROC_SERVER, __uuidof(IXMLDOMDocument), (void**)&m_pXmlDomDocument);完成了这一步,就可以使用这个指针了.接着,我假设你要打开的文件名称为CString strPath;转换一下:BSTR bsPath = SysAllocString(strPath.GetBuffer(strPath.GetLength()));定义一个变体:VARIANT varLoadVariant;//初始化变体 VariantInit(&varLoadVariant);//路径字符串转换为变体varLoadVariant = StringToVariant(bsPath);//关键的一步,LoadVARIANT_BOOL bResult;if(m_pXmlDomDocument->load(varLoadVariant, &bResult) == S_OK){ //Load成功,可以读取结点了}//释放字符串资源if(&varLoadVariant) VariantClear(&varLoadVariant);这就是解析XML文档的初始化步骤,接下来你可以参看SDK的文档进行读写操作.你可以把xml文件看做树型结构,就行了. 求教各位前辈,看看我的学习计划是否可行,求求大家了。 MFC打印和打印预览问题-----急!! 看你能坚持几秒? 在其他类中怎么获取文档试图类中控件的窗口句柄? tcp连接,如何知道对方已断开连接? 如何实现把输入的INT数据加到CString中去? 200分求一三维程序,急!在线等待! 谁能告诉我VC 7.0的新特性。 如何设置CSocket类的连接超时时间? 如何将bmp转换为gif格式,C函数或插件,请指教! 异常总结? 大家把大家知道的都写出来吧,做个汇总!! vc6.0怎么获取文件夹大小?
#import <msxml4.dll> raw_interfaces_only
using namespace MSXML2;接着你定义一个IXMLDOMDocumentPtr m_pXmlDomDocument;初始化接口,
就可以操作xml各个结点了,具体信息你可以查看SDK自带的帮助信息.
因为是公司的源码,不方便传播,请见谅.你有什么问题说出来看能不能帮你的忙.
昨天做个东西要用到XML,但是我对这个是一点都不了解的,在网上找了点资料看了看但是还是不知道怎么去写代码,写了也是有一大堆的错误,所以想找个例子看看
你能不能给我看看你的部分代码,比如头文件的设置、变量的定义、还有就是读写XML的操作代码
(如果不能就算了,仍然要谢谢你的!很感谢)
#import <msxml4.dll> raw_interfaces_only
using namespace MSXML2;然后我先假设你把他封装为一个类,在类里定义一个智能指针
IXMLDOMDocumentPtr m_pXmlDomDocument;/////////////下面是的步骤写成函数封装起来/////////////////现在还不能用,需要这样的操作
CoCreateInstance(__uuidof(DOMDocument40),
NULL,
CLSCTX_INPROC_SERVER,
__uuidof(IXMLDOMDocument),
(void**)&m_pXmlDomDocument);完成了这一步,就可以使用这个指针了.接着,我假设你要打开的文件名称为CString strPath;转换一下:
BSTR bsPath = SysAllocString(strPath.GetBuffer(strPath.GetLength()));定义一个变体:
VARIANT varLoadVariant;
//初始化变体
VariantInit(&varLoadVariant);
//路径字符串转换为变体
varLoadVariant = StringToVariant(bsPath);//关键的一步,Load
VARIANT_BOOL bResult;
if(m_pXmlDomDocument->load(varLoadVariant, &bResult) == S_OK)
{
//Load成功,可以读取结点了
}//释放字符串资源
if(&varLoadVariant)
VariantClear(&varLoadVariant);这就是解析XML文档的初始化步骤,接下来你可以参看SDK的文档进行读写操作.
你可以把xml文件看做树型结构,就行了.