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

  1. #include <iostream>
  2. #include <fstream>
  3. #include <string>
  4. #include <sstream>
  5. #include <locale>
  6. #include <codecvt>
  7. #include <afxwin.h>
  8. #include <afxinet.h>
  9. #include <windows.h>
  10. #include "pugixml.hpp"
  11. #pragma comment(lib, "pugixmlsd.lib")
  12.  
  13. void getXml(LPCTSTR url)
  14. {
  15. CFile file((TEXT("temp1.xml")), CFile::modeCreate|CFile::modeWrite);
  16. CString content;
  17. CString data;
  18. DWORD dwStatusCode;
  19. CInternetSession session(TEXT("HttpClient"));
  20.  
  21. CHttpFile* pfile = (CHttpFile *)session.OpenURL(url);
  22. pfile -> QueryInfoStatusCode(dwStatusCode);
  23. if(dwStatusCode == HTTP_STATUS_OK)
  24. {
  25. while (pfile -> ReadString(data))
  26. {
  27. content += data;
  28. }
  29. }
  30. pfile -> Close();
  31. delete pfile;
  32. session.Close();
  33. file.Write(content, content.GetLength());
  34. file.Close();
  35. }
  36.  
  37. void convertXml()
  38. {
  39. auto LocUtf8 = std::locale(std::locale(""), new std::codecvt_utf8<wchar_t>);
  40. std::wifstream wfin("temp1.xml");
  41. std::wstring wstr, content;
  42. wfin.imbue(LocUtf8);
  43. while(getline(wfin, wstr))
  44. {
  45. content += wstr;
  46. }
  47. wfin.close();
  48. system("del temp1.xml");
  49. //std::wcout.imbue(std::locale(""));
  50. //std::wcout << content << std::endl;
  51.  
  52. std::locale::global(std::locale("Chinese-simplified"));
  53. std::wofstream wfout("temp.xml");
  54. wfout << content;
  55. wfout.close();
  56. }
  57.  
  58. void readXml()
  59. {
  60. pugi::xml_document doc;
  61. doc.load_file("temp.xml");
  62. //doc.save(std::cout);
  63. pugi::xml_node data = doc.child("xml");
  64. for(pugi::xml_node tool = data.first_child(); tool; tool = tool.next_sibling())
  65. {
  66.  
  67. for(pugi::xml_node element = tool.first_child(); element; element = element.next_sibling())
  68. {
  69. std::cout << element.name() << " : " << element.text().get() << std::endl;
  70. }
  71. std::cout << std::endl;
  72. }
  73. }
  74.  
  75. int main()
  76. {
  77. LPCTSTR str = TEXT("http://api.kuaidi100.com/api?id=a78e61062aabe452&com=yuantong&nu=9100493541&show=1");
  78. getXml(str);
  79. convertXml();
  80. readXml();
  81. system("del temp.xml");
  82. //system("pause");
  83. return 0;
  84. }

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. 「USACO 1.3」 Name That Number 解题报告

    \(注意 该篇题解为本人较早时期写的题解 所以会很傻 直接能用map 以string为下标偏偏要绕弯儿 有时间改一改QAQ\) [USACO1.2]Name That Number 题目描述 在威斯康 ...

  2. DM7的SQL批量插入for、while方法

    示例1,for用法: begin for i in 1...10000 loop insert into test values(i,i,'aaa',sysdate); if i mod 20 = 0 ...

  3. 【自建gitlab服务器】gitlab内存持续增大,出现502错误的解决办法

    首先说明笔者的服务器环境,阿里云服务器:8G内存,2核.自从团队运维小伙伴搭建了gitlab之后,git push 代码时不时的就很卡,也经常出现 gitlab 反应超时,返回502错误,严重阻塞了团 ...

  4. Numpy常用方法及应用总汇

    目录 Numpy 1.基本操作 1.1数组转换 1.2数组生成 1.3文件读取 1.4查看操作 2.数据类型 2.1指定数据类型: 2.2查看数据类型 2.3数据类型转换 3.数组运算 3.1数组间运 ...

  5. 【DPDK】【CPU usage】DPDK应用如何计算当前系统的压力

    [前言] 使用DPDK开发的朋友应该都了解使用dpdk的fwd线程的工作模式是polling模式,即100%轮询的方式去加速网络IO,这样我们在操作系统层面上来观察目标processer会发现usag ...

  6. Helm, 在Kubernetes中部署应用的利器

    一.背景 Kubernetes(k8s)是一个基于容器技术的分布式架构领先方案.它在Docker技术的基础上,为容器化的应用提供部署运行.资源调度.服务发现和动态伸缩等一系列完整功能,提高了大规模容器 ...

  7. 权限认证基础:区分Authentication,Authorization以及Cookie、Session、Token

    1. 认证 (Authentication) 和授权 (Authorization)的区别是什么? 这是一个绝大多数人都会混淆的问题.首先先从读音上来认识这两个名词,很多人都会把它俩的读音搞混,所以我 ...

  8. Docker学习(一)环境准备安装centos7

    前言 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化.容器是完全使用沙箱机 ...

  9. 公文流转系统v0.1

    河北金力集团公文流转系统 1.项目需求: 河北金力集团是我省机械加工的龙头企业,主要从事矿山机械制造及各种机械零部件加工.企业有3个厂区,主厂区位于省高新技术开发区,3个分厂分别在保定.邢台和唐山.为 ...

  10. java.lang.UnsupportedOperationException: Manual close is not allowed over a Spring managed SqlSession

    java.lang.UnsupportedOperationException: Manual close is not allowed over a Spring managed SqlSessio ...