实现快递查询,调用快递100的API,未完成.

#include <iostream>
#include <fstream>
#include <string>
#include <sstream>
#include <locale>
#include <codecvt>
#include <afxwin.h>
#include <afxinet.h>
#include <windows.h>
#include "pugixml.hpp"
#pragma comment(lib, "pugixmlsd.lib") void getXml(LPCTSTR url)
{
CFile file((TEXT("temp1.xml")), CFile::modeCreate|CFile::modeWrite);
CString content;
CString data;
DWORD dwStatusCode;
CInternetSession session(TEXT("HttpClient")); CHttpFile* pfile = (CHttpFile *)session.OpenURL(url);
pfile -> QueryInfoStatusCode(dwStatusCode);
if(dwStatusCode == HTTP_STATUS_OK)
{
while (pfile -> ReadString(data))
{
content += data;
}
}
pfile -> Close();
delete pfile;
session.Close();
file.Write(content, content.GetLength());
file.Close();
} void convertXml()
{
auto LocUtf8 = std::locale(std::locale(""), new std::codecvt_utf8<wchar_t>);
std::wifstream wfin("temp1.xml");
std::wstring wstr, content;
wfin.imbue(LocUtf8);
while(getline(wfin, wstr))
{
content += wstr;
}
wfin.close();
system("del temp1.xml");
//std::wcout.imbue(std::locale(""));
//std::wcout << content << std::endl; std::locale::global(std::locale("Chinese-simplified"));
std::wofstream wfout("temp.xml");
wfout << content;
wfout.close();
} void readXml()
{
pugi::xml_document doc;
doc.load_file("temp.xml");
//doc.save(std::cout);
pugi::xml_node data = doc.child("xml");
for(pugi::xml_node tool = data.first_child(); tool; tool = tool.next_sibling())
{ for(pugi::xml_node element = tool.first_child(); element; element = element.next_sibling())
{
std::cout << element.name() << " : " << element.text().get() << std::endl;
}
std::cout << std::endl;
}
} int main()
{
LPCTSTR str = TEXT("http://api.kuaidi100.com/api?id=a78e61062aabe452&com=yuantong&nu=9100493541&show=1");
getXml(str);
convertXml();
readXml();
system("del temp.xml");
//system("pause");
return 0;
}

pugixml简单实用的更多相关文章

  1. jQuery的几种简单实用效果

    许久未分享博客,或许已生疏. 闲来无事, 分享几个jQuery简单实用的效果案例 不喜勿喷... 1.页面常用的返回顶部 <!DOCTYPE html> <html lang=&qu ...

  2. 经验分享:10个简单实用的 jQuery 代码片段

    尽管各种 JavaScirpt 框架和库层出不穷,jQuery 仍然是 Web 前端开发中最常用的工具库.今天,向大家分享我觉得在网站开发中10个简单实用的 jQuery 代码片段. 您可能感兴趣的相 ...

  3. 简单实用的PHP防注入类实例

    这篇文章主要介绍了简单实用的PHP防注入类实例,以两个简单的防注入类为例介绍了PHP防注入的原理与技巧,对网站安全建设来说非常具有实用价值,需要的朋友可以参考下   本文实例讲述了简单实用的PHP防注 ...

  4. php简单实用的操作文件工具类(创建、移动、复制、删除)

    php简单实用好用的文件及文件夹复制函数和工具类(创建.移动.复制.删除) function recurse_copy($src,$dst) {  // 原目录,复制到的目录 $dir = opend ...

  5. 基于Bootstrap简单实用的tags标签插件

    http://www.htmleaf.com/jQuery/ jQuery之家 自由分享jQuery.html5和css3的插件库 基于Bootstrap简单实用的tags标签插件

  6. C#_简单实用的翻页

    简单实用的生成翻页HTML辅助类 C# using System.Text; namespace ClassLibrary { /// <summary> /// /// </sum ...

  7. 简单实用的Windows命令(一)

    前几天新买了一台笔记本电脑,使用了一下几个简单的查看电脑配置的命令,觉得非常的不错,在此记录一下 一:运行命令的方式有两种 1:使用快捷键WIN+R,然后在弹出的“运行”对话框中输入对应的命令 2:在 ...

  8. 简单实用的Windows命令(二)

    昨天简单的记录了几个非常简单实用的Windows命令,不过我又想起来还有两个我在实际的工作中也是经常用到的命令——PING和IPCONFIG,不过我在工作中的使用都是非常简单的,用PING命令检测对应 ...

  9. iOS边练边学--多线程介绍、NSThread的简单实用、线程安全以及线程之间的通信

    一.iOS中的多线程 多线程的原理(之前多线程这块没好好学,之前对多线程的理解也是错误的,这里更正,好好学习这块) iOS中多线程的实现方案有以下几种 二.NSThread线程类的简单实用(直接上代码 ...

随机推荐

  1. 侠说java8-行为参数化(开山篇)

    啥是行为参数化 行为参数化的本质是不执行复杂的代码块,让逻辑清晰可用. 相信使用过js的你肯定知道,js是可以传递函数的,而在 java中也有类似的特性,那就是匿名函数. 理解:行为参数化是一种方法, ...

  2. centos7下图形界面和命令行界面切换

    在图形界面使用 ctrl+alt+F2切换到dos界面 dos界面 ctrl+alt+F2切换回图形界面 在命令上 输入 init 3 命令 切换到dos界面 输入 init 5命令 切换到图形界面 ...

  3. 【一起学源码-微服务】Feign 源码三:Feign结合Ribbon实现负载均衡的原理分析

    前言 前情回顾 上一讲我们已经知道了Feign的工作原理其实是在项目启动的时候,通过JDK动态代理为每个FeignClinent生成一个动态代理. 动态代理的数据结构是:ReflectiveFeign ...

  4. hdfs/hbase 程序利用Kerberos认证超过ticket_lifetime期限后异常

    问题描述 业务需要一个长期运行的程序,将上传的文件存放至HDFS,程序启动后,刚开始一切正常,执行一段时间(一般是一天,有的现场是三天),就会出现认证错误,用的JDK是1.8,hadoop-clien ...

  5. c++ 贪心讲解大礼包

    贪心是什么? 它其实类似一种思想 就是总问题可以分成许多的子问题 子问题的最优解可以直接推出整个问题 它和动态规划有一定的不同之处 动态规划不能由子问题的最优解推出整个问题的最优解 所以你看都要有一个 ...

  6. 原生JS在网页上复制的所有文字后面自动加上一段版权声明

    不少技术博客有这样的处理,当我们复制代码的时候,会自动加上一段本信息版权为XXXX,这是怎么实现的呢? 其实实现的方式很简单,可以在我的网站页面上绑定一个copy事件,当你复制文章内容的时候,自动在剪 ...

  7. python requests 库 首次使用

    安装requests库 执行pip3 install requests 使用resquests库获取百度网站首页 打开python idle终端.以python3为例,在终端执行python3并回车. ...

  8. crawler 听课笔记 碎碎念 1 初步了解各种选择器极其简单的使用

    css中 身份证  id对应# 衣服      class对应 . 图片 pyquery...as pq html= request.get(url=''.....'') doc=pq(html) d ...

  9. NumPy排序

    numpy.sort()函数 该函数提供了多种排序功能,支持归并排序,堆排序,快速排序等多种排序算法 使用numpy.sort()方法的格式为: numpy.sort(a,axis,kind,orde ...

  10. Python线程-死锁

    死锁产生的4个必要条件:    1.互斥:一个资源同一时刻只允许一个线程进行访问.    2.占有未释放:一个线程占有资源,且没有释放资源.    3.不可抢占:一个已经占有资源的线程无法抢占到其他线 ...