• xpath here


    #include "stdafx.h"
    #include <stdio.h>
    #include <tchar.h>
    #import <msxml6.dll>


    // Macro that calls a COM method returning HRESULT value.
    #define CHK_HR(stmt)        do { hr=(stmt); if (FAILED(hr)) goto CleanUp; } while(0)


    void queryNodesSmart()
    {
    MSXML2::IXMLDOMDocumentPtr pXMLDom;
    HRESULT hr = pXMLDom.CreateInstance(__uuidof(MSXML2::DOMDocument60), NULL, CLSCTX_INPROC_SERVER);
    if (FAILED(hr)) 
    {
    printf("Failed to instantiate an XML DOM.\n");
    return;
    }


    try
    {
    pXMLDom->async = VARIANT_FALSE;
    pXMLDom->validateOnParse = VARIANT_FALSE;
    pXMLDom->resolveExternals = VARIANT_FALSE;


    if ( pXMLDom->load(L"data.xml") != VARIANT_TRUE)
    {
    CHK_HR(pXMLDom->parseError->errorCode);
    printf("Failed to load DOM from stocks.xml.\n%s\n",
    (LPCSTR)pXMLDom->parseError->Getreason());
    }


    // Query a single node.
    MSXML2::IXMLDOMNodePtr pNode = pXMLDom->selectSingleNode(L"//stock[1]/*");
    if (pNode)
    {
    printf("Result from selectSingleNode:\nNode, <%s>:\n\t%s\n\n",
    (LPCSTR)pNode->nodeName, (LPCSTR)pNode->xml);
    }
    else
    {
    printf("No node is fetched.\n");
    }


    // Query a node-set.
    MSXML2::IXMLDOMNodeListPtr pnl = pXMLDom->selectNodes(L"//stock[1]/*");
    if(pnl)
    {
    printf("Results from selectNodes:\n");
    for (long i = 0; i < pnl->length; i++)
    {
    pNode = pnl->item[i];
    printf("Node (%d), <%s>:\n\t%s\n",
    i, (LPCSTR)pNode->nodeName, (LPCSTR)pnl->item[i]->xml);
    }
    }
    else
    {
    printf("No node set is fetched.\n");
    }
    }
    catch (_com_error errorObject)
    {
    printf("Exception thrown, HRESULT: 0x%08x", errorObject.Error());
    }


    CleanUp:
    return;
    }


    int _tmain(int argc, _TCHAR* argv[])
    {
    HRESULT hr = CoInitialize(NULL);
    if (SUCCEEDED(hr))
    {
    queryNodesSmart();
    CoUninitialize();
    }
    return 0;


    }

  • 相关阅读:
    linux平台下Hadoop下载、安装、配置
    C#实现单例,保证线程安全
    编写response生成图片验证码时,报import com.sun.image.codec.jpeg.JPEGCodec;
    Java中static是什么意思,有什么作用?
    使用内部类和闭包
    在数据结构中存储对象
    Java学习——响应用户输入
    提升代码质量——结构化编程
    各种排序总结(六)归并排序
    各种排序总结(五)快速排序
  • 原文地址:https://www.cnblogs.com/eaglezzb/p/4176518.html
Copyright © 2020-2023  润新知