在VC中应用MSXML DOM操作XML文件

MFC操作XML配置文件的两种方式:DOMMSXML 这几天做VC项目涉及到了创建xml配置文件这方面的问题,纠结了好多天,尝试了N种方法,终于完成了工作任务,现在和大家分享下:  我参考了如下的资料: XML DOM 实例:http://www.w3school.com.cn/example/xdom_examples.asp VC++中操作XML(MFC、SDK):http://www.cnblogs.com/lingyun1120/arc 阅读详情
导入MS XML Parser 运行库
#import <msxml4.dll>
 
声明变量
MSXML2::IXMLDOMDocumentPtr pDoc; 
MSXML2::IXMLDOMElementPtr  xmlRoot ;
**)解析XML
::CoInitialize(NULL);
HRESULT hr = pDoc.CreateInstance(__uuidof(MSXML2::DOMDocument40)); 
if(!SUCCEEDED(hr))
 { 
       MessageBox("无法创建DOMDocument对象,请检查是否安装了MS XML Parser 运行库!");
       return ;
 }
//加载文件
    CString m_filepath="C://test.xml";
     pDoc->load((_bstr_t)m_filepath);
//选择节点
MSXML2::IXMLDOMNode *pNode;
MSXML2::IXMLDOMNode *pChild;
MSXML2::IXMLDOMNode *pThree;
MSXML2::IXMLDOMNode *pNext=NULL;
pNode=pDoc->selectSingleNode("//FILEINFO");
//遍历子节点
pNode->get_firstChild(&pChild);  
while(pChild)
{
    pChild->get_nextSibling(&pNext);
    pChild->Release();
    pChild = pNext;
}
//取节点属性值
MSXML2::IXMLDOMNamedNodeMapPtr pAttrMap=NULL;
MSXML2::IXMLDOMNodePtr   pAttrItem;
long count;
_variant_t variantValue;
CString str;
       //节点属性,放在链表中  
        pChild->get_attributes(&pAttrMap);
        pAttrMap->get_length(&count); 
        //遍历属性值
       for(int i=0;i<count;i++)
     {  
          pAttrMap->get_item(i,&pAttrItem);
          pAttrItem->get_nodeTypedValue(&variantValue);
          str = (char *)(_bstr_t)variantValue,4)
    }
**)创建新文档
::CoInitialize(NULL);
HRESULT hr = pDoc.CreateInstance(__uuidof(MSXML2::DOMDocument40)); 
if(!SUCCEEDED(hr))
 { 
       MessageBox("无法创建DOMDocument对象,请检查是否安装了MS XML Parser 运行库!");
       return ;
 }
/根节点的名称为XJDOG
 //创建元素并添加到文档中
 xmlRoot=pDoc->createElement((_bstr_t)"XJDOG");
//设置属性
 xmlRoot->setAttribute("id","xxx");
 pDoc->appendChild(xmlRoot);
 MSXML2::IXMLDOMElementPtr pNode,pNode1;
//添加“KEY"
pNode=pDoc->createElement((_bstr_t)"KEY");
pNode->setAttribute("VALUED",(_bstr_t)"12345678");
 xmlRoot->appendChild(pNode);
 //添加“DEVICEINFO 
 pNode=pDoc->createElement((_bstr_t)"DEVICEINFO");
  xmlRoot->appendChild(pNode);
pNode1=pDoc->createElement((_bstr_t)"PRODUCT");
pNode1->Puttext((_bstr_t)(const char *)"XJDOG");
pNode->appendChild(pNode1);
pDoc->save((const char *)"C://test.xml");
Python爬虫实战:5分钟搞定东方财富网股票数据抓取(附完整代码) 本文详细介绍了如何使用Python爬虫快速抓取东方财富网的股票数据,包括环境配置、API分析、核心代码实现及优化技巧。通过简单的requests和pandas库,5分钟内即可获取高质量股票数据,适合量化交易和数据分析初学者。 阅读详情

相关推荐

【Clickhouse从入门到精通】第60篇:ClickHouse生态总结与未来展望

ClickHouse系列收官总结 本文作为《ClickHouse从入门到精通》系列的第60篇收官之作,系统回顾了整个系列的知识体系。文章从基础概念到高级应用,全面梳理了ClickHouse的核心技术: 知识体系:完整回顾了60篇文章的知识图谱,包括列式存储原理、MergeTree引擎家族、分布式架构等核心内容 生态工具:详细盘点了ClickHouse的企业版工具、运维监控、数据集成和可视化方案 版本演进:分析了从21.x到24.x的主要版本特性升级 未来趋势:展望了向量化引擎、湖仓一体、AI集成等发展方向

xyghehehehe的专栏 396

VC++中利用MSXML解析XML、使用DOMXML文档

CoInitialize(NULL); // 初始化COM。 CComPtr<IXMLDOMDocument> spXMLDOM; // 创建解析器实例。 HRESULT hr = spXMLDOM.CoCreateInstance (__uuidof(DOMDocument)); VARIANT_BOOL bSuccess = false; // 装载XML文档。 hr = spXMLDOM->load(CComVariant(L"xmlfile.xml"), &..

thanklife的专栏 1943

VC++中使用MSXML组件解析XML文件

本文还有配套的精品资源,点击获取 简介:在VC++开发环境中,使用MSXML组件可以有效地读取和操作XML文件MSXML组件允许开发者通过COM接口与XML文档交互,支持创建 IXMLDOMDocument 对象来加载和解析XML数据。本文介绍如何通过包含 msxml2.h 头文件,链接 msxml2.lib 或 msxm...

weixin_33419305的博客 1538

VC++和MSXML解析XML文档

最近研究起了使用VC6.0进行解析XML文档,而对于XML文档的解析目前网上主要使用了两种方法:MSXML和CMarkUp类。而我就先从最基本的DOM研究起了。而对于DOM主要采用微软提供的MSXML库,另外好像还有第三方库TinyXML,咱就不研究了。而对于MSXML的使用,网上别人提供的东西都比较零碎,而且还比较乱,在论坛上问反而被一堆人鄙视,得到的解答少之又少。于是我专门花了一天的时间研究了下,现在小有成果,就感觉整理了一些,以供和我一样初级选手作为入门的资料。当然,在整理过程中还是会出现错误,望大家

韵苑23栋工作室 2962

转载:VC DOM 操作XML

<br /><br />操作XML有两种方法:一种是DOM 另一种是ASX 这两种的区别在于:DOM在读取XML文档时要把整个文件都放入内存,然后形成一个完整的DOM树,然后再解析.因此,DOM对于大型文件常常力不从心.而ASX则是读取一行解析一行,不必把所有内容都放入内存.因此适合大型文件的读取.<br /> <br />这不,最近自己也遇到这方面的问题.硬着头皮把别人的代码阅读了一遍,基本掌握了创建 获取XML文档的流程.现介绍如下:<br /> <br />1.在你的APP类里面的InitInstan

namtaerg的专栏 1193

vc中的xml文件读取操作

读取xml1、在stdafx.h中引用如下#include "TLH/msxml4.tlh" using namespace MSXML22、在app文件中注意初始化com#if _WIN32_WINNT >= 0x0400 HRESULT hRes = CoInitializeEx(NULL, COINIT_MULTITHREADED);#else HRESULT hRes = CoInit

gishjl的专栏 3770

利用MSXML解析XML文本(VC)

利用MSXML解析XML文本(VC)http://www.blog.edu.cn/user1/122/archives/2004/291.shtml 一、引言  当前Web上流行的剧本语言是以HTML为主的语言结构,HTML是一种标记语言,而不是一种编程语言,主要的标记是针对显示,而不是针对文档内容本身结构的描述的。也就是说,机器本身是不能够解析它的内容的,所以就出现了XML语言。XM

JamesXing的专栏 1442

VC6中使用MSXML 4.0 DOM处理XML文档

 转贴http://www.cublog.cn/u/18517/showart_386465.html    本文简要讨论XML/DOMMSXML,并示例如何在VC6.0中使用MSXML 4.0 DOM处理XML文档。    作者:tyc611.cublog.cn,2007-09-211. DOMXML    DOM是Document Objec

SummerHeart的专栏 2058

VC使用MSXML解析XML文档

VC使用MSXML解析XML文档 第一部分:DOM解析:       概述:DOM解析将会把一个完整的XML文档读进来,生成一个结构树。这样会要把XML文档全部都加载到内在中。所以解析起来的速度会要慢一些。     1、如何加载xml文件:          //创建DOM,加载XML文档          MSXML::IXMLDOMDocumentPtr pCommandDoc;     ...

深之JohnChen的专栏 9163

VCxml文件的读写

VCxml文件的读写http://blog.csdn.net/huanghui19860205/article/details/6029498 一、 用微软的   DOM,      MSXML4      //引入msxml4.dll      #import   "C:/WINNT.0/system32/msxml4.dll"           //创建XMLDOMD

shenghua 598

VC读写XML文件实例运用:项目核心功能/场景

VC读写XML文件实例运用:项目核心功能/场景 去发现同类优质开源项目:https://gitcode.com/ 在软件开发中,XML文件作为一种轻量级的数据交换格式,被广泛应用于配置文件、数据存储和网络数据传输等场景。VC读写XML文件实例运用项目,正是针对这一核心需求,提供一个简单高效的解决方案。 项目介绍 VC读写XML文件实例运用是一个开源项目,通过Visual C++(简称VC)实现了对...

gitblog_06713的博客 964

VC++环境下XML操作的完整指南

可扩展标记语言(XML)作为一种数据交换格式,已被广泛应用于网络数据传输和存储。XML通过使用一系列规则和结构来描述数据,确保不同系统间的数据交换保持一致性和准确性。XML是一种标记语言,用于存储和传输数据,但与HTML不同,它不是为了显示数据,而是为了描述数据。它允许用户创建自己的标签,定义自己的数据类型,从而让数据的结构和内容具有自解释性。DOM文档对象模型)是将文档以树形结构呈现的编程接口,它定义了文档的逻辑结构和如何通过编程语言去访问文档结构。

weixin_28746457的博客 827

VC++中利用MSXML解析XML文档

摘 要:XML文档是近年来比较流行的结构化文档形式,其主要用途不只适用于开发网页,而且在其他场合也有很广泛的应用。本文主要介绍用VC++开发应用程序时对XML文档的解析。  关键词: XML HTML SGML COM DOM  一、 XML 简介  XML(Xtensible Markup Language,即扩展标记语言)的发展起源于1996年。当时,出版界巨头和Web业内人士经过共同讨论,提

就是要去飞翔…… 1308

利用MSXML解析XML文本

一、引言   当前Web上流行的脚本语言是以HTML为主的语言结构,HTML是一种标记语言,而不是一种编程语言,主要的标记是针对显示,而不是针对文档内容本身结构的描述的。也就是说,机器本身是不能够解析它的内容的,所以就出现了XML语言。   XML(eXtensibleMarkup Language)语言是SGML语言的子集,它保留了SGML主要的使用功能,同时大大缩减了SGML的复杂性。XML

博为 904

VC应用MSXML DOM 的一些基本实现方法

 已知变量MSXML2::IXMLDOMDocument *pDoc;MSXML2::IXMLDOMNode *pChild, *pParent;MSXML2::IXMLDOMNode *pNod;MSXML2::IXMLDOMElement *pEle;  初始化指针:MSXML2::IXMLDOMDocument *pDocument=NULL;MSXML2::IXMLDOMNod

就是要去飞翔…… 5249

VC读写XML文件

MSXML2::IXMLDOMDocumentPtr pDoc; MSXML2::IXMLDOMElementPtr  xmlRoot ;  // 创建DOMDocument对象  HRESULT hr  =  pDoc.CreateInstance(__uuidof(MSXML2::DOMDocument40));  if ( ! SUCCEEDED(hr))   { 

LEE的专栏 1433

利用VC++与MSXML解析XML文档

一、文档对象模型(DOM)  DOM是Document Object Model(文档对象模型)的简称,是对XML文档进行应用开发、编程的应用程序接口(API)。作为W3C公布的一种跨平台、与语言无关的接口规范,DOM提供了在不同环境和应用中的标准程序接口,可以用任何语言实现。  DOM采用对象模型和一系列的接口来描述XML文档的内容和结构,即利用对象把文档模型化。这种对象模型实现的基本功能包括:

zb3288的专栏 1158

全国五级高精度水系矢量数据,分类很全,适合做大区域流域分析应用

全国五级高精度水系矢量数据,分类很全,适合做大区域流域分析应用

上一篇: CFileDialog的用法
下一篇: VC中驱动编译方法
jiadelin
博客等级 码龄24年 74粉丝 69原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值