利用msxml创建xml

前端之家收集整理的这篇文章主要介绍了利用msxml创建xml前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
  1. 利用msxml进行xml的创建与解析。
  2. 第一部分:xml的创建
  3. 创建了一个类,用来创建xml文件
  4. LoadXmlFile.cpp文件内容如下:
  1. #include "StdAfx.h"
  2. #include "LoadXMLFile.h"
  3. #include <msxml6.h>
  4.  
  5. LoadXMLFile::LoadXMLFile(void)
  6. {
  7. }
  8.  
  9.  
  10. LoadXMLFile::~LoadXMLFile(void)
  11. {
  12. }
  13.  
  14. BOOL LoadXMLFile::getXML(const CString cstrXML)
  15. {
  16. //加载.xml文件
  17. CComPtr<IXMLDOMDocument> spXMLDoc;
  18.  
  19. HRESULT hr = spXMLDoc.CoCreateInstance(_uuidof(DOMDocument));
  20. hr = spXMLDoc->put_async(VARIANT_TRUE);
  21.  
  22. VARIANT_BOOL bLoad;
  23. hr = spXMLDoc->load(CComVariant(cstrXML),&bLoad);
  24.  
  25. CComPtr<IXMLDOMDocument> spLoadFile;
  26. CComPtr<IXMLDOMElement> spNewNode;
  27.  
  28. spLoadFile = spXMLDoc.Detach();
  29.  
  30. //创建跟结点<china>
  31. spLoadFile->createElement(CComBSTR("学校"),&spNewNode);
  32. spLoadFile->putref_documentElement(spNewNode);
  33. //添加属性结点
  34. spNewNode->setAttribute(CComBSTR("what"),CComVariant("up"));
  35.  
  36. //添加注释结点
  37. CComPtr<IXMLDOMComment> spComment;
  38. CComPtr<IXMLDOMNode> spInserteNode;
  39. spLoadFile->createComment(CComBSTR("学院名字"),&spComment);
  40. spNewNode->appendChild((IXMLDOMNode*) spComment,&spInserteNode);
  41.  
  42. //添加普通子节点
  43. CComPtr<IXMLDOMNode> spChildNode;
  44. CComPtr<IXMLDOMNode> spXMLNode;
  45. spLoadFile->createNode(CComVariant(NODE_ELEMENT),CComBSTR("学院"),NULL,&spXMLNode);
  46. spXMLNode->put_text(CComBSTR("计算机学院"));
  47. spNewNode->appendChild(spXMLNode,&spChildNode);
  48. CComPtr<IXMLDOMNamedNodeMap> MapNode;
  49.  
  50. //添加带有子结点的节点
  51. CComPtr<IXMLDOMNode> spBJChildNode;
  52. CComPtr<IXMLDOMNode> spNode;
  53. spLoadFile->createNode(CComVariant(NODE_ELEMENT),&spNode);
  54. spNode->put_text(CComBSTR("信通院"));
  55. spNewNode->appendChild(spNode,&spBJChildNode);
  56.  
  57. CComPtr<IXMLDOMNode> spBJChild;
  58. CComPtr<IXMLDOMNode> spBjChildNode;
  59. spLoadFile->createNode(CComVariant(NODE_ELEMENT),CComBSTR("专业"),&spBJChild);
  60. spBJChild->put_text(CComBSTR("通信工程"));
  61. spNode->appendChild(spBJChild,&spBjChildNode);
  62.  
  63.  
  64. spLoadFile->save(CComVariant(cstrXML));
  65.  
  66. return TRUE;
  67. }

  1. 在主函数中进行如下调用

  1. CString strAddr = _T("company.xml");
  2. CoInitialize(NULL);
  3. LoadXMLFile loadXmlFile;
  4. loadXmlFile.getXML(strAddr);
  5. CoUninitialize();
  1. 创建xml结果如图:

猜你在找的XML相关文章