VC6.0下创建xml文件有很多方式,尝试了timyxml,但是他不支持文件声明等的写入,因此转战MSXML

MSXML有很多版本,这里用的是msxml3

首先在头文件中引入

#import "msxml3.dll"
using namespace MSXML2;

其次编写创建xml文件方法

void CCVideoDlg::CreateXML()
{MSXML2::IXMLDOMDocument2Ptr pXMLDom;MSXML2::IXMLDOMProcessingInstructionPtr pi;HRESULT hr;CoInitialize(NULL);hr = pXMLDom.CreateInstance(__uuidof(DOMDocument));if (FAILED(hr)){printf("Failed to CreateInstance on an XML DOM");}pXMLDom->preserveWhiteSpace = VARIANT_TRUE;//添加声明pi = pXMLDom->createProcessingInstruction("xml", "version='1.0' encoding='UTF-8'");if (pi != NULL) {pXMLDom->appendChild(pi);pi.Release();}//创建样式表pi = pXMLDom->createProcessingInstruction("xml-stylesheet","type='text/xsl' href='./../utils/detail.xsl'");if (pi != NULL) {pXMLDom->appendChild(pi);pi.Release();}// 创建注释MSXML2::IXMLDOMCommentPtr pc;pc = pXMLDom->createComment("xmlReport.xml created using XML DOM object.");if (pc != NULL) {pXMLDom->appendChild(pc);pc.Release();}char CurrentDateTime[32];  getCurrentTime(CurrentDateTime);// 创建root节点MSXML2::IXMLDOMElementPtr pb,pd;pb= pXMLDom->createElement("body");pXMLDom->appendChild(pb);pd = pXMLDom->createElement("Details");MSXML2::IXMLDOMAttributePtr pa;pa = pXMLDom->createAttribute("time");if (pa != NULL){pa->value = CurrentDateTime;pd->setAttributeNode(pa);} pa = pXMLDom->createAttribute("threshold");if (pa != NULL){CString threadThold;threadThold.Format("%d",m_sliderCtrl.GetPos());pa->value = (_bstr_t)threadThold;pd->setAttributeNode(pa);} pa = pXMLDom->createAttribute("diffPercent");if (pa != NULL){CString diff;GetDlgItemText(IDC_diffRateEDIT1,diff);pa->value =(_bstr_t)diff;pd->setAttributeNode(pa);} pb->appendChild(pd);pb->appendChild(pXMLDom->createTextNode("\n\t"));//释放节点pd.Release();pb.Release();hr = pXMLDom->save((_variant_t)saveXMLReportName);if (FAILED(hr)){printf("Failed to save DOM to xmlReport.xml\n");}else{printf("DOM saved to xmlReport.xml\n");}if (pXMLDom) pXMLDom.Release();CoUninitialize();
}
void CCVideoDlg::AddXMLNode(CString filePath,CString snapTimes,char currentTime[32],CString cameraId,int countNum,CString state)
{MSXML2::IXMLDOMDocument2Ptr pDoc;HRESULT hr = pDoc.CreateInstance( __uuidof(MSXML2::DOMDocument30), NULL, CLSCTX_INPROC_SERVER);if (FAILED(hr)){printf("Failed to CreateInstance on an XML DOM");}pDoc->async = VARIANT_FALSE;pDoc->validateOnParse = VARIANT_FALSE;    pDoc->resolveExternals = VARIANT_FALSE; if( pDoc->load((_variant_t)filePath) != VARIANT_TRUE)       {       printf("Fail reason: %s\n", (LPCSTR)pDoc->parseError->Getreason());     }else{MSXML2::IXMLDOMNodePtr pNode = pDoc->selectSingleNode(L"body/RESULTS");//首先要找到RESULTS节点,因为是要在它之后插入pNode->appendChild(pDoc->createTextNode("\n\t"));MSXML2::IXMLDOMElementPtr pResultNode=pDoc->createNode(CComVariant(NODE_ELEMENT),"RESULT","");pResultNode->appendChild(pDoc->createTextNode("\n\t"));pNode->appendChild(pResultNode);pNode.Release();pResultNode->setAttribute("snapTimes",(_bstr_t)snapTimes);pResultNode->setAttribute("currentTime",currentTime);pResultNode->setAttribute("TV_Name",(_bstr_t)cameraId);CString strNums;strNums.Format("%d",countNum);pResultNode->setAttribute("diffPercent",(_bstr_t)strNums);pResultNode->setAttribute("state",(_bstr_t)state);//图片路径节点CString imgSrc;imgSrc.Format("%s_%s.jpeg",currentTime,snapTimes);pResultNode->setAttribute("imgSrc",(_bstr_t)imgSrc);pDoc->save((_variant_t)filePath);   pResultNode.Release(); }if (pDoc) pDoc.Release();
}

												

VC++利用微软msxml3.dll创建xml文件相关推荐

  1. VC++利用微软mstscax.dll控件集成远程桌面

    利用微软mstscax.dll控件集成远程桌面 1. 新建基于MFC的对话框程序,在对话框资源上右键,选择[Insert ActiveX Control...]菜单,然后在弹出的界面中选择" ...

  2. VC++ MSXML创建XML文件以及对XML文档解析

    VC++ MSXML创建XML文件以及对XML文档解析 转自http://www.newxing.com/Tech/Program/Cpp/703.html // XmlCreationDemo.cp ...

  3. java dom创建xml文件_Java 如何使用dom方式读取和创建xml文件

    Java 如何使用dom方式读取和创建xml文件 发布时间:2020-11-11 17:08:31 来源:亿速云 阅读:101 作者:Leah 本篇文章给大家分享的是有关Java 如何使用dom方式读 ...

  4. 用CMarkup类创建xml文件的方法

    Markup.cpp和Markup.h文件内容在下一篇博客中 首先添加Markup.cpp和Markup.h到工程 在用使用xml的.cpp文件中添加头文件#include "Markup. ...

  5. 如何创建xsl文件 xml_EXCEL知识分享 I 连载如何快速创建XML文件

    转自:Excel之家ExcelHome XML文件本质上是文本文件,因此使用创建文本文件的方式就可以创建XML文件.此外,在VBA中也可以使用XML DOM对象创建XML文件,示例代码如下. #001 ...

  6. 使用Javascript创建XML文件

    使用Javascript创建XML文件 出处:http://blog.csdn.net/sutao_713/article/details/1908431          在客户端创建XML文件可以 ...

  7. C#代码创建Xml文件

    扩展标记语言XML(eXtensible Markup Language),是由W3C组织制定的.做为用于替代HTML语言的一种新型的标记语言,XML内部有着很多基本标准,XML就是通过与这些相关标准 ...

  8. Android -- 创建XML文件对象及其序列化, pull解析XML文件

    1. 创建XML文件对象及其序列化 示例代码:(模拟以xml格式备份短信到SD卡) SmsInfo.java, bean对象 /*** 短信的业务bean* @author Administrator ...

  9. Dom4j解析Xml文件,Dom4j创建Xml文件

    Dom4j解析Xml文件,Dom4j创建Xml文件 >>>>>>>>>>>>>>>>>>&g ...

  10. python记录(4)- lxml模块创建xml文件

    因为要比赛制作voc数据集,然后给的数据集label是一个.txt文件,然后就需要将这个txt文件变为xml文件.对这方面一点也不懂,在此记录一下用lxml模块中的 etree创建xml文件.这只是一 ...

最新文章

  1. FPGA从Xilinx的7系列学起(7)
  2. android魅族轮播图,用angularjs模仿魅族官网的图片轮播功能
  3. java 实体类arraylist_如何实现Java的ArrayList经典实体类
  4. 在eclipse安卓sqlite怎么用_把安卓手机性能发挥到极致之-Aid Learning
  5. 微软修复严重的Azure漏洞,可用于泄露客户数据
  6. 月薪过万的岗位名单,大家久等了!
  7. 如何解决生产环境 Flink 应用的技术难题?
  8. Hbase权威指南(含目录,高清,免费)
  9. 2016年考研数学一真题pdf ​​​
  10. Virtualbox虚拟机Ubuntu联网
  11. iOS用代码判断设备是否越狱
  12. 国内各大高校开源镜像站
  13. 桌面上计算机图标老是自动删除,win7系统总是自动删除桌面快捷方式怎么办
  14. 2022电大国家开放大学网上形考任务-市场营销学非免费(非答案)
  15. windows7浏览器无法打开html,win7网页无法打开出现HTML Parsing Error的解法
  16. SLAM/VIO/VINS AR/VR
  17. JVM内存模型及内存分配
  18. XML入门教程(3)
  19. 美指为何坚挺100关口?黄金大涨必须拿下1700
  20. Proteus教程——构建双稳态多谐振荡器电路

热门文章

  1. AcWing 187 导弹防御系统
  2. CC26x2R1笔记(8)CCS9.2 cc26xx环境的搭建
  3. 计算机专业班级网站,班级网站毕业论文.doc
  4. Shiro框架Given final block not properly padded问题解决
  5. pytorch3d代码解释:pytorch3d.structures.meshes之verts_list, verts_packed, verts_padded
  6. Php 实现在文档只读功能,如何将只读文档变成可编辑模式?
  7. keras中的后端backend及其相关函数(K.prod,K.cast)
  8. c语言中windows.h是什么意思,c语言中memory.h有什么作用
  9. 【游戏感想】古剑奇谭2
  10. 介绍一种冷门但简单的双拼方案——紫光双拼