xml 解析库 msxml6.dll
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相关推荐
- IOS学习:常用第三方库(GDataXMLNode:xml解析库)
IOS学习:常用第三方库(GDataXMLNode:xml解析库) 解析 XML 通常有两种方式,DOM 和 SAX: DOM解析XML时,读入整个XML文档并构建一个驻留内存的树结构(节点树),通过 ...
- Linux下ACE、xml解析库开发环境搭建
一.安装环境 1.安装vmware12.0版本 2.安装centos6.6的镜像文件 3.安装vmare_tool工具(方便虚拟机与实体机的切换) 4.配置网络 虚拟机网络连接方式:桥接 ...
- xml解析库对比总结(解析方式,第三方库,TinyXml)
一. 解析方式 xml的2种解析方式(DOM和SAX解析方式): https://blog.csdn.net/weixin_42472048/article/details/81264570 dom解 ...
- c语言自定义的xml解析库,轻量级C语言实现的xml解析库minixml
搜索热词 1下载:http://www.msweet.org/downloads.PHP?L+Z3 2说明:@H_404_4@Mini-XML是一个小型的开源的XML解析器,采用 C 语言开发.该解析 ...
- GDataXMLNode:xml解析库
一.GDataXMLNode说明 GDataXMLNode是Google提供的用于XML数据处理的类集.该类集对libxml2--DOM处理方式进行了封装,能对较小或中等的xml文档进行读写操作且支持 ...
- xml解析库pugixml的基本用法
本文将介绍常用的pugixml的api函数使用方法. 在使用pugixml库时,需包含头文件 #include "pugixml.hpp" 首先需要实例化一个xml文件类 pugi ...
- python代码示例下载-python下xml解析库lxml最新版下载安装以及代码示例
abc 123 def 456 ghi
- 服务器开发24补充:市面上一些xml第三方库解析速度的对比,tinyxml、tinyxml2、Qt、RapidXml、PugiXml,和tinyxml与tinyxml2的对比
文章目录 零.背景前提 一.Qt - QDomDocument 1)测试代码 2)测试结果 二.TinyXml(略) 三.TinyXml2 1)测试代码 2)运行效果及结论 四.RapidXml 1) ...
- XML 解析器之一 :MSXML使用教程(转)
介绍 微软的msxml是基于COM接口开发的,如同vbscript和javascript一样,微软这么做是为了提供更好的扩展性.你可以在用脚本来调用msxml,也可以用C++这样编程语言一样调用(虽然 ...
- XML解析简介及Xerces-C++简单使用举例
XML是由World WideWeb联盟(W3C)定义的元语言.它已经成为一种通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的方便.XML在不同的语言里解析方式 ...
最新文章
- 使用KNN模型进行多输出分类实战(Multioutput Classification)
- linux上设置了log4j没有产生日志文件_关于 log4j 升级到 log4j2 的小结
- ITK:提取网格边界上的顶点
- java中图片文件的传输及显示(Socket以及ServerSocket演示)
- Bootstrap3 弹出提示插件的方法
- tcpdump查看某个端口数据
- http://www.codeproject.com/script/Articles/ViewDownloads.aspx?aid=9332 多broser
- AS3还可以通过CDATA标签声明多行字符串
- C# 在类文件自动添加文件注释的方法
- C#判断联网状态检查电脑联网状态
- Gym101237C The Palindrome Extraction Manacher、SAM、倍增
- 一个简易的选择小时(时分秒)的插件
- java基础 泛型类的定义
- 【智驾深谈】想拿自动驾驶融资,先过VC这16问
- 揭开阿里巴巴复杂任务资源混合调度技术面纱
- 基于Android studio智能快递柜存放取物系统java
- vue.jsv-html,关于vue.js v-bind 的一些理解和思考,vue.jsv-bind
- android画cci指标代码,大智慧CCI画线指标源码 副图公式
- JAVA 实现签名和解签
- 【业界冥灯】今年校招太难了我面试过的大厂都逃不过被制裁的命运
热门文章
- 精准定位直播爆品、快速打造爆款上热门,视频号工具人手必备!
- 全球各国家手机号正则校验
- HRBUST 2386 - 霍冰阔落(主席树)
- UVA - 10400 Game Show Math
- 看完这篇文章,还不知道怎么学单片机,来打我!
- 计算机将会代替老师吗英语范文,英文作文电脑对教育的重要意义
- 计算机毕业后的打算英语作文,大学毕业后的职业生涯规划的英语作文
- Electron使用nodejs的坑,Can‘t resolve ‘child_process‘错误
- ZCMU--1585: 面试
- 云通讯im怎么做php回调,腾讯云IM接入案列(一)