资源简介
msxml的示例教程,增加删除节点,获取节点值、名称,获取属性名称属性值,增加删除属性等

代码片段和文件信息
// MSxml.cpp : Defines the entry point for the console application.
//
#include
#include
//#include
#include “msxml.h“
#import l.dll>
enum tagDOMNodeType
{
NODE_INVALID = 0
NODE_ELEMENT = 1
NODE_ATTRIBUTE = 2
NODE_TEXT = 3
NODE_CDATA_SECTION = 4
NODE_ENTITY_REFERENCE = 5
NODE_ENTITY = 6
NODE_PROCESSING_INSTRUCTION = 7
NODE_COMMENT = 8
NODE_DOCUMENT = 9
NODE_DOCUMENT_TYPE = 10
NODE_DOCUMENT_FRAGMENT = 11
NODE_NOTATION = 12
};
static MSxml::IxmlDOMDocumentPtr pxmlDoc;
static MSxml::IxmlDOMElementPtr pRootElement;
static MSxml::IxmlDOMNodePtr pRootNode;
void xml_Node_Browse(MSxml::IxmlDOMNodePtr &pNode)
{
MSxml::IxmlDOMNodeListPtr pNodeList = NULL;
MSxml::IxmlDOMNodePtr pSubNode = NULL;
MSxml::DOMNodeType type;
long SubNodeNum = 0 i = 0;
_bstr_t bstrName bstrText;
try
{
pNode->get_childNodes(&pNodeList);
//获得子节点的个数
pNodeList->get_length(&SubNodeNum);
bstrName = pNode->GetnodeName();
bstrText = pNode->Gettext();
pNode->get_nodeType(&type);
printf (“%s %s 节点类型%d\n“ (char *)bstrName (char *)bstrText type);
printf (“子节点个数:%d\n“ SubNodeNum);
if(SubNodeNum > 0)
{
for(i = 0; i < SubNodeNum; i++)
{
pNodeList->get_item(i &pSubNode);
xml_Node_Browse(pSubNode);
}
}
else
{
assert(1);
}
if(pNodeList)
pNodeList.Release();
if(pSubNode)
pSubNode.Release();
}
catch(_com_error errorobject)
{
printf(“Exception HRESULT = 0x%08x“ errorobject.Error());
}
}
int xml_Read_Val(MSxml::IxmlDOMNodePtr &pNode)
{
_bstr_t NodeVal;
try
{
NodeVal = pNode->Gettext();
printf (“节点值%s\n“ (char *)NodeVal);
}
catch(_com_error errorobject)
{
printf(“Exception HRESULT = 0x%08x“ errorobject.Error());
return -1;
}
return 0;
}
int xml_Read_Attr(MSxml::IxmlDOMNodePtr &pNode)
{
MSxml::IxmlDOMNamedNodeMapPtr pAttrs = NULL;
MSxml::IxmlDOMNodePtr pAttrNode = NULL;
_bstr_t AttrName AttrText;
long RootAttrNum = 0 j = 0;
try
{
pNode->get_attributes(&pAttrs);
if (pAttrs == NULL)
{
return -1;
}
//属性个数
pAttrs->get_length(&RootAttrNum);
printf (“节点属性个数:%d\n“ RootAttrNum);
for(j = 0; j < RootAttrNum; j++)
{
pAttrs->get_item(j &pAttrNode);
AttrName = pAttrNode->GetnodeName();
AttrText = pAttrNode->Gettext();
printf (“属性名%s属性值%s\n“ (char *)AttrName (char *)AttrText);
}
if (pAttrNode)
pAtt
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 458 2014-07-12 18:34 MSxm
文件 54593 2008-04-14 20:00 MSxm
文件 54084 2008-04-14 20:00 MSxm
文件 2647040 2014-07-12 18:29 MSxm
文件 221244 2014-07-12 18:29 MSxm
文件 1281424 2014-07-12 18:29 MSxm
文件 188481 2014-07-12 18:29 MSxm
文件 7814508 2014-07-12 12:50 MSxm
文件 1156096 2014-07-12 18:29 MSxm
文件 0 2014-07-12 18:29 MSxm
文件 397 2014-07-12 18:34 MSxm
文件 181248 2014-07-12 18:34 MSxm
文件 225280 2014-07-12 18:29 MSxm
文件 54533 2008-04-14 20:00 MSxm
文件 54054 2008-04-14 20:00 MSxm
文件 13360 2014-07-12 18:29 MSxm
文件 3441 2014-07-11 18:49 MSxm
文件 541 2014-07-11 16:51 MSxm
文件 107520 2014-07-12 18:34 MSxm
文件 54784 2014-07-12 18:34 MSxm
文件 252 2014-07-12 18:34 MSxm
目录 0 2014-07-12 18:29 MSxm
目录 0 2014-07-12 18:34 MSxm
----------- --------- ---------- ----- ----
14113338 23
- 上一篇:MFC中利用CSocket实现UDP通信
- 下一篇:简易打字游戏程序 MFC
相关资源
- 移木块游戏,可以自编自玩,vc6.0编写
- MFC数字钟(基于VC6.0)
- 安科瑞智能电能表MODBUS通讯程序 VC6
- VC6LineNumberAddin.dll
- 用VC6.0实现多边形扫描线填充算法
- VC助手 VC6.0助手
- VC6 USB开发源码
- 吕鑫vc6c++数据结构视频源码
- MFC的异步网络通讯应用程序
- VC6查找与替换插件
- UC/OS2 (UCOS2)移植于VC6代码及手册
- VC6.0 完整的图像处理程序 运用了大量
- VC6.0经典串口通信源程序C++
- VC6.0MFC界面美化
- 即时通讯开发源码终极版C#.NETC++都有
- win7风格的mfc界面美化源代码
- VS打开VC6.0所需libcd.lib
- MFC画圆自定义|位置|半径|边界和内部
- 用vc++6.0实现的银行账户管理系统
- vc6.0编程助手Visual_AssistX(含破解补丁
- VC6.0_MFC画图demo小程序源码
- Visual_assist_X_for_VC6.0破解版.rar
- C++&easyx;的坦克大战
- VC开发MFC局域网屏幕监控系统完美版
- VC6.0三维画图画三维球,立方体,矩形
- VC6中使用MFC自动化Excel数据写入和图表
- MFC 下写的SVM类
- VC6.0获取MAC地址
- VC6运行库全版
- vc6.0+opengl纯色五角星填充
评论
共有 条评论