// ConsoleApplication1.cpp : 定義控制台應用程式的入口點。 //
#include "stdafx.h" #include <comutil.h> #include <iostream> #include <MsXml6.h>
#pragma comment(lib, "comsuppw.lib") #pragma comment(lib, "msxml6.lib")
using namespace std;
void CreateXMLFile(IXMLDOMDocument *pXMLDoc);
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)) { CreateXMLFile(pXMLDoc); pXMLDoc->Release(); } else cout << "創建XMLDOMDocument對象失敗" << endl;
CoUninitialize(); system("pause"); return 0; }
void CreateXMLFile(IXMLDOMDocument *pXMLDoc) { /* 在文檔中創建XML聲明 */ IXMLDOMProcessingInstruction *pProInstruction; pXMLDoc->createProcessingInstruction(L"xml", L"version=\"1.0\" encoding=\"utf-8\"", &pProInstruction); pXMLDoc->appendChild(pProInstruction, NULL); pProInstruction->Release();
/* 在文檔中創建根節點<book> */ IXMLDOMElement *pBookElement; pXMLDoc->createElement(L"book", &pBookElement); pXMLDoc->appendChild(pBookElement, NULL); // 把根節點加入到文檔中
/* 給根節點<book>添加id屬性*/ pBookElement->setAttribute(L"id", variant_t(448));
/* 給根節點<book>添加子節點<name>和<price> */ IXMLDOMElement *pBookNameElement; IXMLDOMElement *pBookPriceElement; pXMLDoc->createElement(L"name", &pBookNameElement); pXMLDoc->createElement(L"price", &pBookPriceElement); pBookNameElement->put_text(L"JavaScript開發技術大全"); pBookPriceElement->put_text(L"$65"); pBookElement->appendChild(pBookNameElement, NULL); pBookElement->appendChild(pBookPriceElement, NULL); pBookNameElement->Release(); pBookPriceElement->Release(); pBookElement->Release();
/* 保存XML文件 */ HRESULT hr = pXMLDoc->save(variant_t("file.xml")); if (FAILED(hr)) cout << "XML文件保存失敗" << endl; }
|