使用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