xml 解析 无处不在,web编程时所用到的ajax  其它底层就是调用 的msxml.dll服务。

#include "stdafx.h"
#import "msxml6.dll"
using namespace MSXML2;

inline void TESTHR( HRESULT _hr )
   { if FAILED(_hr) throw(_hr); }

void XMLHttpRequestSample()
{
    MSXML2::IXMLHTTPRequestPtr pIXMLHTTPRequest = NULL;
   BSTR bstrString = NULL;
   HRESULT hr;

try {
           // init
        _bstr_t  bType="Content-Type: application/xml\r\n";
        _bstr_t  bAgent="Client-Agent:PVI_P801_V0.10/800*600/other\r\n";
        _bstr_t bCalling="x-up-calling-line-id:13466320945\r\n";
        _bstr_t bAction="Action:register\r\n";
        _bstr_t bAPI="APIVersion:1.0.0\r\n";
        _bstr_t bUser="User-Agent: Mozilla/4.0\r\n";
        _bstr_t bAccept="Accept:*/*\r\n";
        _bstr_t bCache="Cache-Control:no-cache\r\n";

_variant_t varHeader =bType+bAgent+bCalling+bAction+bAPI+bUser+bAccept+bCache;

_bstr_t varHost="http://localhost:81/book.xml"

hr=pIXMLHTTPRequest.CreateInstance("Msxml2.XMLHTTP.6.0");
      SUCCEEDED(hr) ? 0 : throw hr;
      hr=pIXMLHTTPRequest->open("GET", varHost, false);
      SUCCEEDED(hr) ? 0 : throw hr;

hr=pIXMLHTTPRequest->send(varHeader);
      SUCCEEDED(hr) ? 0 : throw hr;

bstrString=pIXMLHTTPRequest->responseText;

// MessageBox(NULL, _bstr_t(bstrString), _T("Results"), MB_OK);
      printf("**************************************************************************");
      printf(_bstr_t(bstrString));

if(bstrString)
      {
         ::SysFreeString(bstrString);
         bstrString = NULL;
      }

} catch (...) {
      MessageBox(NULL, _T("Exception occurred"), _T("Error"), MB_OK);
      if(bstrString)
         ::SysFreeString(bstrString);
   }
  // CoUninitialize();

}
void XMLDOMNodeSample()
{
    try {
        MSXML2::IXMLDOMDocumentPtr docPtr;
        MSXML2::IXMLDOMNodePtr DOMNodePtr;

TESTHR(docPtr.CreateInstance("Msxml2.DOMDocument.6.0"));
        VARIANT vtTemp;

vtTemp.vt=VT_I2;
            vtTemp.iVal = 1; //NODE_ELEMENT
        // load a document
        _variant_t varXml("D:\\ebook_host\\book.xml");
        _variant_t varOut((bool)TRUE);
        varOut = docPtr->load(varXml);
        if ((bool)varOut == FALSE)
            throw(0);
        MessageBox(NULL, _bstr_t(docPtr->xml), _T("Original Document"), MB_OK);       
        //DOMNodePtr = docPtr->createNode(vtTemp, "VIDEOS", "");    // 创建 新节点
        //docPtr->documentElement->appendChild(DOMNodePtr);  //添加 子节点
        //MessageBox(NULL, _bstr_t(docPtr->xml), _T("New Document"), MB_OK);

MSXML2::IXMLDOMElementPtr pXMLDocElement = NULL;
       pXMLDocElement = docPtr->documentElement;
       MSXML2::IXMLDOMNodeListPtr pXMLDomNodeList = NULL;
       pXMLDomNodeList = pXMLDocElement->selectNodes("descendant::person[name='ab']");

int count = 0;
        count = pXMLDomNodeList->length;     
        for(int i=0;i<pXMLDomNodeList->length;i++)
        {           
          DOMNodePtr=pXMLDomNodeList->Getitem(i);
         if(DOMNodePtr!=NULL)
         {
             MessageBox(NULL, _bstr_t(DOMNodePtr->Gettext()), _T("New Document"), MB_OK);
         }
        }

} catch(...)
    {
        MessageBox(NULL, _T("Exception occurred"), _T("Error"), MB_OK);
    }
}
int main()
{
    // init
    TESTHR(CoInitialize(NULL));
      XMLHttpRequestSample();
      XMLDOMNodeSample();
    CoUninitialize();
    return 0;
}

转载于:https://www.cnblogs.com/sea918/archive/2010/06/28/1766776.html

xml 解析库 msxml6.dll相关推荐

  1. IOS学习:常用第三方库(GDataXMLNode:xml解析库)

    IOS学习:常用第三方库(GDataXMLNode:xml解析库) 解析 XML 通常有两种方式,DOM 和 SAX: DOM解析XML时,读入整个XML文档并构建一个驻留内存的树结构(节点树),通过 ...

  2. Linux下ACE、xml解析库开发环境搭建

    一.安装环境   1.安装vmware12.0版本 2.安装centos6.6的镜像文件 3.安装vmare_tool工具(方便虚拟机与实体机的切换) 4.配置网络      虚拟机网络连接方式:桥接 ...

  3. xml解析库对比总结(解析方式,第三方库,TinyXml)

    一. 解析方式 xml的2种解析方式(DOM和SAX解析方式): https://blog.csdn.net/weixin_42472048/article/details/81264570 dom解 ...

  4. c语言自定义的xml解析库,轻量级C语言实现的xml解析库minixml

    搜索热词 1下载:http://www.msweet.org/downloads.PHP?L+Z3 2说明:@H_404_4@Mini-XML是一个小型的开源的XML解析器,采用 C 语言开发.该解析 ...

  5. GDataXMLNode:xml解析库

    一.GDataXMLNode说明 GDataXMLNode是Google提供的用于XML数据处理的类集.该类集对libxml2--DOM处理方式进行了封装,能对较小或中等的xml文档进行读写操作且支持 ...

  6. xml解析库pugixml的基本用法

    本文将介绍常用的pugixml的api函数使用方法. 在使用pugixml库时,需包含头文件 #include "pugixml.hpp" 首先需要实例化一个xml文件类 pugi ...

  7. python代码示例下载-python下xml解析库lxml最新版下载安装以及代码示例

    abc 123 def 456 ghi

  8. 服务器开发24补充:市面上一些xml第三方库解析速度的对比,tinyxml、tinyxml2、Qt、RapidXml、PugiXml,和tinyxml与tinyxml2的对比

    文章目录 零.背景前提 一.Qt - QDomDocument 1)测试代码 2)测试结果 二.TinyXml(略) 三.TinyXml2 1)测试代码 2)运行效果及结论 四.RapidXml 1) ...

  9. XML 解析器之一 :MSXML使用教程(转)

    介绍 微软的msxml是基于COM接口开发的,如同vbscript和javascript一样,微软这么做是为了提供更好的扩展性.你可以在用脚本来调用msxml,也可以用C++这样编程语言一样调用(虽然 ...

  10. XML解析简介及Xerces-C++简单使用举例

    XML是由World WideWeb联盟(W3C)定义的元语言.它已经成为一种通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的方便.XML在不同的语言里解析方式 ...

最新文章

  1. 使用KNN模型进行多输出分类实战(Multioutput Classification)
  2. linux上设置了log4j没有产生日志文件_关于 log4j 升级到 log4j2 的小结
  3. ITK:提取网格边界上的顶点
  4. java中图片文件的传输及显示(Socket以及ServerSocket演示)
  5. Bootstrap3 弹出提示插件的方法
  6. tcpdump查看某个端口数据
  7. http://www.codeproject.com/script/Articles/ViewDownloads.aspx?aid=9332 多broser
  8. AS3还可以通过CDATA标签声明多行字符串
  9. C# 在类文件自动添加文件注释的方法
  10. C#判断联网状态检查电脑联网状态
  11. Gym101237C The Palindrome Extraction Manacher、SAM、倍增
  12. 一个简易的选择小时(时分秒)的插件
  13. java基础 泛型类的定义
  14. 【智驾深谈】想拿自动驾驶融资,先过VC这16问
  15. 揭开阿里巴巴复杂任务资源混合调度技术面纱
  16. 基于Android studio智能快递柜存放取物系统java
  17. vue.jsv-html,关于vue.js v-bind 的一些理解和思考,vue.jsv-bind
  18. android画cci指标代码,大智慧CCI画线指标源码 副图公式
  19. JAVA 实现签名和解签
  20. 【业界冥灯】今年校招太难了我面试过的大厂都逃不过被制裁的命运

热门文章

  1. 精准定位直播爆品、快速打造爆款上热门,视频号工具人手必备!
  2. 全球各国家手机号正则校验
  3. HRBUST 2386 - 霍冰阔落(主席树)
  4. UVA - 10400 Game Show Math
  5. 看完这篇文章,还不知道怎么学单片机,来打我!
  6. 计算机将会代替老师吗英语范文,英文作文电脑对教育的重要意义
  7. 计算机毕业后的打算英语作文,大学毕业后的职业生涯规划的英语作文
  8. Electron使用nodejs的坑,Can‘t resolve ‘child_process‘错误
  9. ZCMU--1585: 面试
  10. 云通讯im怎么做php回调,腾讯云IM接入案列(一)