【示例2】
从xml文件中读取:
int _tmain(int argc, _TCHAR* argv[])
{
// 初始化COM
HRESULT hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE);
if (FAILED(hr))
return 1;
// 创建XML文档对象
IXMLDOMDocument *pXMLDoc;
hr = CoCreateInstance(CLSID_DOMDocument60, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&pXMLDoc));
if (SUCCEEDED(hr))
{
// 打开文件
FILE *fp;
fopen_s(&fp, "data.xml", "r");
// 获取文件大小
fseek(fp, 0, SEEK_END);
int filesize = ftell(fp);
fseek(fp, 0, SEEK_SET);
// 读取文件内容
char *xmlstr = new char[filesize + 1];
fread(xmlstr, filesize, 1, fp);
xmlstr[filesize] = '\0'; // 在字符数组末尾加\0
fclose(fp);
//cout << xmlstr << endl;
// 解析xml字符串
VARIANT_BOOL flag;
pXMLDoc->loadXML(bstr_t(xmlstr), &flag);
if (flag == VARIANT_TRUE)
read(pXMLDoc);
else
cout << "解析XML字符串失败" << endl;
pXMLDoc->Release();
delete[] xmlstr;
}
else
cout << "创建XMLDOMDocument对象失败" << endl;
CoUninitialize();
system("pause");
return 0;
}
XML文件的内容:

编码为ANSI,文件大小为113字节。