// 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; }
|