【示例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位元組。
