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
// 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
相关文章推荐
- VC读写XML文件
- VC读写XML文件
- VC读写XML文件
- VC使用tinyxml读写INI,cfg,XML配置文件
- VC使用tinyxml读写INI,cfg,XML配置文件
- VC读写XML文件
- VC读写XML文件
- VC使用tinyxml读写INI,cfg,XML配置文件
- c#读写xml文件
- Android开发8——利用pull解析器读写XML文件
- 通过XmlSerializer读写XML文件
- VC逐行读写日志文件(TXT)
- VC++结构文件的读写操作
- OpenCV读写xml和yml文件
- opencv下XML 文件的读写
- 分享一个java对xml,excel,jdbc.properties,读写文件,读写图片等实现(1)
- c#读写xml文件
- xml读写文件实例
- (独家)cocos2d-x与excel通过xml文件读写双向交互(上)
- VC++对XML文件操作