前端之家收集整理的这篇文章主要介绍了
利用msxml创建xml,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
- 利用msxml进行xml的创建与解析。
- 第一部分:xml的创建
- 创建了一个类,用来创建xml文件。
- LoadXmlFile.cpp文件内容如下:
- #include "StdAfx.h"
- #include "LoadXMLFile.h"
- #include <msxml6.h>
-
- LoadXMLFile::LoadXMLFile(void)
- {
- }
-
-
- LoadXMLFile::~LoadXMLFile(void)
- {
- }
-
- BOOL LoadXMLFile::getXML(const CString cstrXML)
- {
- //加载.xml文件
- CComPtr<IXMLDOMDocument> spXMLDoc;
-
- HRESULT hr = spXMLDoc.CoCreateInstance(_uuidof(DOMDocument));
- hr = spXMLDoc->put_async(VARIANT_TRUE);
-
- VARIANT_BOOL bLoad;
-
- hr = spXMLDoc->load(CComVariant(cstrXML),&bLoad);
-
- CComPtr<IXMLDOMDocument> spLoadFile;
- CComPtr<IXMLDOMElement> spNewNode;
-
- spLoadFile = spXMLDoc.Detach();
-
- //创建跟结点<china>
- spLoadFile->createElement(CComBSTR("学校"),&spNewNode);
- spLoadFile->putref_documentElement(spNewNode);
-
- //添加属性结点
- spNewNode->setAttribute(CComBSTR("what"),CComVariant("up"));
-
- //添加注释结点
- CComPtr<IXMLDOMComment> spComment;
- CComPtr<IXMLDOMNode> spInserteNode;
- spLoadFile->createComment(CComBSTR("学院名字"),&spComment);
- spNewNode->appendChild((IXMLDOMNode*) spComment,&spInserteNode);
-
-
- //添加普通子节点
- CComPtr<IXMLDOMNode> spChildNode;
- CComPtr<IXMLDOMNode> spXMLNode;
- spLoadFile->createNode(CComVariant(NODE_ELEMENT),CComBSTR("学院"),NULL,&spXMLNode);
- spXMLNode->put_text(CComBSTR("计算机学院"));
- spNewNode->appendChild(spXMLNode,&spChildNode);
- CComPtr<IXMLDOMNamedNodeMap> MapNode;
-
- //添加带有子结点的节点
- CComPtr<IXMLDOMNode> spBJChildNode;
- CComPtr<IXMLDOMNode> spNode;
- spLoadFile->createNode(CComVariant(NODE_ELEMENT),&spNode);
- spNode->put_text(CComBSTR("信通院"));
- spNewNode->appendChild(spNode,&spBJChildNode);
-
- CComPtr<IXMLDOMNode> spBJChild;
- CComPtr<IXMLDOMNode> spBjChildNode;
- spLoadFile->createNode(CComVariant(NODE_ELEMENT),CComBSTR("专业"),&spBJChild);
- spBJChild->put_text(CComBSTR("通信工程"));
- spNode->appendChild(spBJChild,&spBjChildNode);
-
-
- spLoadFile->save(CComVariant(cstrXML));
-
- return TRUE;
- }
- 在主函数中进行如下调用:
- CString strAddr = _T("company.xml");
- CoInitialize(NULL);
- LoadXMLFile loadXmlFile;
- loadXmlFile.getXML(strAddr);
- CoUninitialize();
- 创建xml结果如图: