使用MSXML SDK步骤:
(1)Tools->Options->Directories 添加 msxml2.lib 目录 和 include 文件目录
(2)Project->Settings->Link->Object/library modules 添加 msxml2.lib
(3)在引用类的头文件中#include "msxml2.h"
注意:
(1)XML文件格式应为UNICODE,MSXML只支持UNICODE
void CTestDlg::InitXml()


{
HRESULT hr;
IXMLDOMDocument * doc = NULL;
//IXMLDOMElement* root = NULL;
IXMLDOMElement *root = NULL;
VARIANT_BOOL vb = false;
IXMLDOMNodeList* childList = NULL;
long len;
//CComBSTR file(L"E:\\vc\\test\\Debug\\test.xml");
CString str(L"E:\\vc\\test\\Debug\\test.xml");
BSTR bstr = str.AllocSysString();

hr = CoInitialize(NULL);
hr = CoCreateInstance(CLSID_DOMDocument, NULL, CLSCTX_INPROC_SERVER,IID_IXMLDOMDocument, (void**)&doc);
hr = doc->load(CComVariant(L"E:\\vc\\test\\Debug\\test.xml"),&vb);
if (FAILED(hr))

{
AfxMessageBox("加载XML失败");
return;
}
hr = doc->get_documentElement(&root);//获取根
if (FAILED(hr))

{
AfxMessageBox("获取根节点失败");
return;
}
root->get_childNodes(&childList);
childList->get_length(&len);

for (int i = 0 ; i < len ; ++i)

{
IXMLDOMNode *item;
IXMLDOMNode *nameAtr;
IXMLDOMNamedNodeMap *atr;
wchar_t *name = new wchar_t[255];

memset(name,0,sizeof(name));
childList->get_item(i,&item);
item->get_attributes(&atr);//获取属性
atr->getNamedItem(L"name",&nameAtr);//获取名称值
nameAtr->get_text(&name);//获取name值
CString strName(name);
this->m_List.InsertItem(i,strName);
}
CoUninitialize();
}
相关参考:
http://www.vcer.net/2248.html
MSXML Parser 3.0 SDK下载:
http://www.microsoft.com/downloads/details.aspx?FamilyID=87925008-ec5a-4ff2-a7ef-549ab0394eda&displaylang=en
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了