• C++ XML编程


    1. How to use MSXML2 in C++?

    First, we should import the "msxml6.tlb" file, the code as below:

      #import "..\Common\msxml6.tlb" raw_interfaces_only exclude("ISchemaElement", "ISchemaAttribute")

    Then we can use the MSXML2 interfaces now, take for an example:

    CoInitialize(NULL);
    
    HRESULT hr = S_OK;
    
    MSXML2::IXMLDOMDocument2Ptr spDoc = NULL;
    hr = ::CoCreateInstance(__uuidof(MSXML2::DOMDocument60), 
                                NULL, 
                                CLSCTX_ALL,
                                __uuidof(MSXML2::IXMLDOMDocument2), 
                                (void**)&spDoc);
        if(FAILED(hr) || NULL == spDoc)
           return -1;
    
    //....
    sp->load(...);
    
    sp->get_sirstChild(...);
    
    sp->get_xml();

     2. How to use XmlLite in C++?

      MSDN Linker: http://msdn.microsoft.com/en-us/library/windows/desktop/ms752838(v=vs.85).aspx

    HRESULT hr = S_OK;
    
       // Create reader.
       CComPtr<IXmlReader> spReader;
       hr = ::CreateXmlReader(__uuidof(IXmlReader),
                              reinterpret_cast<void**>(&spReader), 
                              0);
       if(FAILED(hr) || NULL == spReader)
          return;
    
       // Set input storage.
       CComPtr<IStream> spStream;
       hr = spReader->SetInput(spStream);
       if(FAILED(hr) || NULL == spStream)
          return;
    
       //spStream->Read
    
       // Enum node.
       XmlNodeType nodeType = XmlNodeType_None;
       while(S_OK == (hr = spReader->Read(&nodeType)))
       {
          UINT lineNum = 0;
          if(FAILED(spReader->GetLineNumber(&lineNum)))
             continue;
       }
    
       // Enum current node's attributes.
       for(hr = spReader->MoveToFirstAttribute();
           S_OK == hr;
           hr = spReader->MoveToNextAttribute())
       {
          LPCWSTR attValue;
          if(FAILED(spReader->GetValue(&attValue, NULL)))
             continue;
       }
  • 相关阅读:
    单例设计模式
    HashMap 排序
    代理、动态代理
    冒泡排序 、二分查找、快速排序
    Azure powershell 订阅登录管理
    cmdbuild -2.4.3 在Centos7部署
    Zabbix3.0 安装部署
    nginx 一键安装
    通过菜单一键安装mysql
    Rsync同步工具
  • 原文地址:https://www.cnblogs.com/nchxmoon/p/2880306.html
Copyright © 2020-2023  润新知