您的位置:首页 > 其它

VC读写XML文件

2008-01-29 15:52 585 查看
1、安装MSXML 4.0 SP2。在VC6中建立一个基于Dialog的工程。如图:

// Com口初始化

AfxOleInit();

3、在StdAfx.h中引入动态链接库 MSXML.DLL(C:\windows\system32\msxml4.dll)

#import < msxml4.dll >

4、双击Generate按钮,在消息处理函数中添加如下代码:

UpdateData(TRUE);

MSXML2::IXMLDOMDocumentPtr pDoc;

MSXML2::IXMLDOMElementPtr xmlRoot ;

// 创建DOMDocument对象

HRESULT hr = pDoc.CreateInstance(__uuidof(MSXML2::DOMDocument40));

if ( ! SUCCEEDED(hr))

// 根节点的名称为Book

// 创建元素并添加到文档中

xmlRoot = pDoc -> createElement((_bstr_t) " Book " );

// 设置属性

xmlRoot -> setAttribute( " id " ,( const char * )m_strId);

pDoc -> appendChild(xmlRoot);

MSXML2::IXMLDOMElementPtr pNode;

// 添加“author”元素

pNode = pDoc -> createElement((_bstr_t) " Author " );

pNode -> Puttext((_bstr_t)( const char * )m_strAuthor);

xmlRoot -> appendChild(pNode);

// 添加“Title”元素

pNode = pDoc -> createElement( " Title " );

pNode -> Puttext(( const char * )m_strTitle);

xmlRoot -> appendChild(pNode);

// 保存到文件

// 如果不存在就建立,存在就覆盖

pDoc -> save( " d:\\he.xml " );
双击Load按钮,在消息处理函数中添加如下代码:

MSXML2::IXMLDOMDocumentPtr pDoc;

HRESULT hr;

hr = pDoc.CreateInstance(__uuidof(MSXML2::DOMDocument40));

if (FAILED(hr))

// 加载文件

pDoc -> load( " d:\\he.xml " );

MSXML2::IXMLDOMNodePtr pNode;

// 在树中查找名为Book的节点," // "表示在任意一层查找

pNode = pDoc -> selectSingleNode( " //Book " );

MSXML2::DOMNodeType nodeType;

// 得到节点类型

pNode -> get_nodeType( & nodeType);

// 节点名称

CString strName;

strName = ( char * )pNode -> GetnodeName();

// 节点属性,放在链表中

MSXML2::IXMLDOMNamedNodeMapPtr pAttrMap = NULL;

MSXML2::IXMLDOMNodePtr pAttrItem;

_variant_t variantvalue;

pNode -> get_attributes( & pAttrMap);

long count;

count = pAttrMap -> get_length( & count);

pAttrMap -> get_item( 0 , & pAttrItem);

// 取得节点的值

pAttrItem -> get_nodeTypedValue( & variantvalue);

m_strId = ( char * )(_bstr_t)variantvalue;

UpdateData(FALSE);

更多技术文章请参看施昌权的个人网站: http://www.joyvc.cn
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: