zoukankan      html  css  js  c++  java
  • 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;
       }
  • 相关阅读:
    php函数总结
    文本框输入限制
    e.keyCode和e.which使用
    transform总结
    wampSever的mysql操作
    linux命令总结
    nginx总结
    微雪的stm32学习资料
    串口+RS485驱动
    cubemx+stm32串口学习汇总资料
  • 原文地址:https://www.cnblogs.com/nchxmoon/p/2880306.html
Copyright © 2011-2022 走看看