问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

一个vc中使用msxml的问题

发布网友 发布时间:2022-04-26 21:30

我来回答

2个回答

热心网友 时间:2023-11-27 03:20

第一步,在stdafx.h加入2句:
#import <msxml3.dll> //导入动态库,装了IE5就有
using namespace MSXML2; //引用命名空间,
第二步:声明文档变量
MSXML2::IXMLDOMDocumentPtr pTestDomDocument;//故障参数文件

第三步:然后在代码中就可以使用
void CQuickTestView::GetPeiTable(int sendtype,char* buf)
{
::CoInitialize(NULL);
pDRTDomDocument.CreateInstance(__uuidof(DOMDocument30));//创建XML文档实例

MSXML2::IXMLDOMProcessingInstructionPtr pPI=NULL;
//创建处理指令
pDRTDomDocument->raw_createProcessingInstruction(_bstr_t(L"xml"),_bstr_t(L"version='1.0' encoding='utf-8'"),&pPI);
pDRTDomDocument->appendChild(pPI);

//创建根目录
MSXML2::IXMLDOMElementPtr pDRTDocRoot;
pDRTDocRoot = pDRTDomDocument->createElement((_bstr_t)"DRT");
pDRTDomDocument->appendChild(pDRTDocRoot);

MSXML2::IXMLDOMElementPtr pNode;
MSXML2::IXMLDOMElementPtr pChildNode;
MSXML2::IXMLDOMElementPtr pGrandChildNode;

CString str;
int smv_index = 32;
int goose_send_index = 32;
int goose_recv_index = 32;
int do_index = 0;
int di_index = 0;
int i = 0;
if(scfg.hd.smvst.uSmv_num > 0)
{
pNode = pDRTDomDocument->createElement((_bstr_t)"SMV_SEND");//创建根元素的一级子元素"SMV_SEND"
AppendChildToParent(pNode,pDRTDocRoot,1,FALSE);//添加根元素的一级子元素"SMV_SEND"
for(i = 0; i < scfg.hd.smvst.uSmv_num; i++)//创建"SMV"子元素
{
pChildNode = pDRTDomDocument->createElement((_bstr_t)"SMV");
str.Format("%d",scfg.hd.smvst.sSmvData[i].PortId);
pChildNode->setAttribute("ethId",(_bstr_t)str);
str.Format("%d",scfg.hd.smvst.sSmvData[i].sample_rate);
pChildNode->setAttribute("rate",(_bstr_t)str);
str.Format("%d",scfg.hd.smvst.sSmvData[i].uASDUnum);
pChildNode->setAttribute("asNum",(_bstr_t)str);
str.Format("%d",scfg.hd.smvst.sSmvData[i].uSmvStyle);
pChildNode->setAttribute("protocol",(_bstr_t)str);

str.Format("%002x-%002x-%002x-%002x-%002x-%002x",scfg.hd.smvst.sSmvData[i].uDest_mac[0],scfg.hd.smvst.sSmvData[i].uDest_mac[1],\
scfg.hd.smvst.sSmvData[i].uDest_mac[2],scfg.hd.smvst.sSmvData[i].uDest_mac[3],\
scfg.hd.smvst.sSmvData[i].uDest_mac[4],scfg.hd.smvst.sSmvData[i].uDest_mac[5]);
pChildNode->setAttribute("mac",(_bstr_t)str);
str.Format("%d",scfg.hd.smvst.sSmvData[i].uApp_id);
pChildNode->setAttribute("appId",(_bstr_t)str);
str.Format("%s",scfg.hd.smvst.sSmvData[i].cSVID);
pChildNode->setAttribute("svId",(_bstr_t)str);
str.Format("%d",scfg.hd.smvst.sSmvData[i].uVlan_id);
pChildNode->setAttribute("vlanId",(_bstr_t)str);
str.Format("%d",scfg.hd.smvst.sSmvData[i].uPriority);
pChildNode->setAttribute("priority",(_bstr_t)str);
str.Format("%d",scfg.hd.smvst.sSmvData[i].uAcessNum);
pChildNode->setAttribute("channelCount",(_bstr_t)str);
if(i < scfg.hd.smvst.uSmv_num-1)
{
AppendChildToParent(pChildNode,pNode,2,FALSE);
}
else//如果是最后一个SMV配置
{
AppendChildToParent(pChildNode,pNode,2,TRUE);
}
for(int j = 0; j < scfg.hd.smvst.sSmvData[i].uAcessNum; j++)
{
pGrandChildNode = pDRTDomDocument->createElement((_bstr_t)"CHNL");
str.Format("%d",smv_index++);
pGrandChildNode->setAttribute("index",(_bstr_t)str);
//jixina081016 针对SMV增加品质因素 注意区分9-1和9-2的不同。
if(scfg.hd.smvst.sSmvData[i].uSmvStyle == 0)//如果为9-1,每组SMV共用一个状态字。
{
UINT itemp;
BYTE btemp[4];
btemp[0] = scfg.hd.smvst.sSmvData[i].typeeword[2];
btemp[1] = scfg.hd.smvst.sSmvData[i].typeeword[3];
btemp[2] = scfg.hd.smvst.sSmvData[i].typeeword[0];
btemp[3] = scfg.hd.smvst.sSmvData[i].typeeword[1];
memcpy(&itemp,btemp,4);
str.Format("%d",itemp);
pGrandChildNode->setAttribute("q",(_bstr_t)str);
}
if(scfg.hd.smvst.sSmvData[i].uSmvStyle == 1)//如果为9-2,每组SMV的每个通道分别对应一个品质因素。
{
str.Format("%d",scfg.hd.smvst.sSmvData[i].uQuality[j]);
pGrandChildNode->setAttribute("q",(_bstr_t)str);
}

if(j < scfg.hd.smvst.sSmvData[i].uAcessNum-1)//?????????
AppendChildToParent(pGrandChildNode,pChildNode,3,FALSE);
else
AppendChildToParent(pGrandChildNode,pChildNode,3,TRUE);
}
}
}

热心网友 时间:2023-11-27 03:20

请注册你的COM,方法"开始菜单"-"运行",然后输入
REGSVR32 x:\XXX\msxml4.dll
REGSVR32后面是msxml4.dll的路径

热心网友 时间:2023-11-05 02:22

第一步,在stdafx.h加入2句:
#import <msxml3.dll> //导入动态库,装了IE5就有
using namespace MSXML2; //引用命名空间,
第二步:声明文档变量
MSXML2::IXMLDOMDocumentPtr pTestDomDocument;//故障参数文件

第三步:然后在代码中就可以使用
void CQuickTestView::GetPeiTable(int sendtype,char* buf)
{
::CoInitialize(NULL);
pDRTDomDocument.CreateInstance(__uuidof(DOMDocument30));//创建XML文档实例

MSXML2::IXMLDOMProcessingInstructionPtr pPI=NULL;
//创建处理指令
pDRTDomDocument->raw_createProcessingInstruction(_bstr_t(L"xml"),_bstr_t(L"version='1.0' encoding='utf-8'"),&pPI);
pDRTDomDocument->appendChild(pPI);

//创建根目录
MSXML2::IXMLDOMElementPtr pDRTDocRoot;
pDRTDocRoot = pDRTDomDocument->createElement((_bstr_t)"DRT");
pDRTDomDocument->appendChild(pDRTDocRoot);

MSXML2::IXMLDOMElementPtr pNode;
MSXML2::IXMLDOMElementPtr pChildNode;
MSXML2::IXMLDOMElementPtr pGrandChildNode;

CString str;
int smv_index = 32;
int goose_send_index = 32;
int goose_recv_index = 32;
int do_index = 0;
int di_index = 0;
int i = 0;
if(scfg.hd.smvst.uSmv_num > 0)
{
pNode = pDRTDomDocument->createElement((_bstr_t)"SMV_SEND");//创建根元素的一级子元素"SMV_SEND"
AppendChildToParent(pNode,pDRTDocRoot,1,FALSE);//添加根元素的一级子元素"SMV_SEND"
for(i = 0; i < scfg.hd.smvst.uSmv_num; i++)//创建"SMV"子元素
{
pChildNode = pDRTDomDocument->createElement((_bstr_t)"SMV");
str.Format("%d",scfg.hd.smvst.sSmvData[i].PortId);
pChildNode->setAttribute("ethId",(_bstr_t)str);
str.Format("%d",scfg.hd.smvst.sSmvData[i].sample_rate);
pChildNode->setAttribute("rate",(_bstr_t)str);
str.Format("%d",scfg.hd.smvst.sSmvData[i].uASDUnum);
pChildNode->setAttribute("asNum",(_bstr_t)str);
str.Format("%d",scfg.hd.smvst.sSmvData[i].uSmvStyle);
pChildNode->setAttribute("protocol",(_bstr_t)str);

str.Format("%002x-%002x-%002x-%002x-%002x-%002x",scfg.hd.smvst.sSmvData[i].uDest_mac[0],scfg.hd.smvst.sSmvData[i].uDest_mac[1],\
scfg.hd.smvst.sSmvData[i].uDest_mac[2],scfg.hd.smvst.sSmvData[i].uDest_mac[3],\
scfg.hd.smvst.sSmvData[i].uDest_mac[4],scfg.hd.smvst.sSmvData[i].uDest_mac[5]);
pChildNode->setAttribute("mac",(_bstr_t)str);
str.Format("%d",scfg.hd.smvst.sSmvData[i].uApp_id);
pChildNode->setAttribute("appId",(_bstr_t)str);
str.Format("%s",scfg.hd.smvst.sSmvData[i].cSVID);
pChildNode->setAttribute("svId",(_bstr_t)str);
str.Format("%d",scfg.hd.smvst.sSmvData[i].uVlan_id);
pChildNode->setAttribute("vlanId",(_bstr_t)str);
str.Format("%d",scfg.hd.smvst.sSmvData[i].uPriority);
pChildNode->setAttribute("priority",(_bstr_t)str);
str.Format("%d",scfg.hd.smvst.sSmvData[i].uAcessNum);
pChildNode->setAttribute("channelCount",(_bstr_t)str);
if(i < scfg.hd.smvst.uSmv_num-1)
{
AppendChildToParent(pChildNode,pNode,2,FALSE);
}
else//如果是最后一个SMV配置
{
AppendChildToParent(pChildNode,pNode,2,TRUE);
}
for(int j = 0; j < scfg.hd.smvst.sSmvData[i].uAcessNum; j++)
{
pGrandChildNode = pDRTDomDocument->createElement((_bstr_t)"CHNL");
str.Format("%d",smv_index++);
pGrandChildNode->setAttribute("index",(_bstr_t)str);
//jixina081016 针对SMV增加品质因素 注意区分9-1和9-2的不同。
if(scfg.hd.smvst.sSmvData[i].uSmvStyle == 0)//如果为9-1,每组SMV共用一个状态字。
{
UINT itemp;
BYTE btemp[4];
btemp[0] = scfg.hd.smvst.sSmvData[i].typeeword[2];
btemp[1] = scfg.hd.smvst.sSmvData[i].typeeword[3];
btemp[2] = scfg.hd.smvst.sSmvData[i].typeeword[0];
btemp[3] = scfg.hd.smvst.sSmvData[i].typeeword[1];
memcpy(&itemp,btemp,4);
str.Format("%d",itemp);
pGrandChildNode->setAttribute("q",(_bstr_t)str);
}
if(scfg.hd.smvst.sSmvData[i].uSmvStyle == 1)//如果为9-2,每组SMV的每个通道分别对应一个品质因素。
{
str.Format("%d",scfg.hd.smvst.sSmvData[i].uQuality[j]);
pGrandChildNode->setAttribute("q",(_bstr_t)str);
}

if(j < scfg.hd.smvst.sSmvData[i].uAcessNum-1)//?????????
AppendChildToParent(pGrandChildNode,pChildNode,3,FALSE);
else
AppendChildToParent(pGrandChildNode,pChildNode,3,TRUE);
}
}
}

热心网友 时间:2023-11-05 02:23

请注册你的COM,方法"开始菜单"-"运行",然后输入
REGSVR32 x:\XXX\msxml4.dll
REGSVR32后面是msxml4.dll的路径
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
小红书怎么修改ID 专属ID更改方法 Win11如何更改字体视觉效果 Win11字体视觉效果修改方法介绍 华为团队管理模式 通信工程这个专业主要是学什么 专注力差的孩子该如何纠正 三岁的孩子专注力不好,怎么培养她的专注力呀!。 镇江关周围有什么玩的,镇江及周边旅游景点 大港南站去镇江汽车站怎么走 镇江汽车站到大港南站有多远 出国去澳大利亚留学都需要注意哪些事项呢? 澳大利亚留学条件及注意事项有哪些 用ASP调用DLL文件时报错: activex部件不能创建对象:MSXML2.DOMdocument 运行天正电气T20时提示无法创建domdocument对象,请检查是否安装了MS XML Parser 运行库! 电脑跳框框“无法创建DOMDocument40对象,请检查是否安装了MS XML Parser 运行库!” 无法创建DOMDocument对象,请检查是否安装了,S XML Parser 运行库怎么让解决 无法创建DOMDocument对象,请检查是否安装了MS XML Parser 运行库! 如何加强生产车间的现场管理 动力车间应建立哪些现场处置方案 生产车间的管理项目及管理方案? 求车间5S现场改善提案 茯苓不能和什么一起吃? 白茯苓煮什么汤 一套标准化生产现场管理方案包含哪些内容? 生产现场管理的方案怎么写? 土伏苓和什么搭配 压铸车间生产现场管理方案 白茯苓和什么搭配煲汤 土茯苓在煲汤的时候,配上哪些食材更完美? 茯苓、茯神、党参、黄芪还可以和那些重要一起搭配? 茯苓和什么搭配治失眠最好 伏苓煮粥怎么搭配? VC 读取 xml文件的 问题 MSXML2.DOMDocument.5.0 服务器不能创建对象,麻烦高手帮助一下。 Flashget总出现“failed to create empty document”提示 为什么不能创建参数XML文件 火狐是不是不支持document.createElement 如何删除桌面--鼠标右键--新建里的Smart Document 在线客服在网页上能正常显示,但是点击后,竟然在地址栏最前面出现网站的地址,导致聊天窗口无法生成? Microsoft Office Document Image Writer打印机没有了 在360浏览器中document.getElementById(&#39;id&#39;).innerhtml下img图片不显 ... MFC中怎么把xml文件转换成CFG文件,求解答。。。等 属性“DocumentDockContainer”的代码生成失败。 在资源管理器中不能直接进行的操作是? A 修改系统时间 B 重命名 C 格式化磁盘 D 复制(拷贝) 铭文推荐中不能直接进行下面哪种操作 笔记本U盘启动重装系统出现:“不可直接操作raid分区,请操作raid分区下的动态卷” MOV AX,DATA MOV DS,AX 汇编初始化时为什么不能直接MOV DS, DATA ? 计算机病毒为什么不可以直接操作底层硬件 初学者不能直接操作大型燃油遥控直升机? Windows 在控制面板中的&quot;用户账户&quot;中不可以进行的操作是___. ps中为什么要建立新的图层,不可以直接在画布上操作吗 mov指令什么情况下不可以直接使用