资源简介
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下编写串口通讯例程
- 飞机飞行源代码VC6.0
- SDKvc6.0用
- MFC记事本vc6.0下开发
- vc6.0的MFC实现简单的俄罗斯方块小游戏
- vc6.0下mfc控件加载jpg格式图片
- VC6.0 OpenCV 摄像头程序
- VC6.0--计算器
- 个人收支财务管理系统 VC6.0MFC+ sql s
- 解决VC6生成的MFC程序不能在没有安装
- 俄罗斯方块(基于VC6.0单文档)
- vc6.0编写的基于API的串口通信程序
- VC6.0 C++ MD5验证源码文件和字符串验证
- 64位操作系统下win10、win7,VC6的所有问
- VC6.0编写的包过滤防火墙
- 基于VC++6.0的绘图软件画直线曲线矩形
- 坦克大战完整源代码
- VC6.0 MFC时钟运动源码.zip
- VC6.0将ListCtrl中数据写入到Excel
- 32位、64位的mysql的libmysql.lib和libmysq
- VC6.0MFC聊天室
- GMP大数库实现大整数模以及Miller Rab
- 这是我在VC6.0下设计的一个坦克大战的
- vc6++安装包
- VC6.0迷你版|VC6.0精简版|含编程专用的
- 编译好的boost-1.34.1
- zw_vc6.0可执行源码.zip
- vc6.0调用vs2008 CImage类
- VB6 VC6最佳打包工具InstallShield,内附教
- VC6.0中文版
评论
共有 条评论