文档章节

pugixml简单实用

N3verL4nd
 N3verL4nd
发布于 2017/03/25 10:43
字数 220
阅读 69
收藏 0

实现快递查询,调用快递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;
}


© 著作权归作者所有

上一篇: html作业记录
N3verL4nd
粉丝 1
博文 379
码字总数 481243
作品 0
朝阳
私信 提问
VC使用pugixml读取XML树形结构菜单

VC使用pugixml读取XML树形结构菜单 一、pugixml的简介 pugixml是一个简单方便的XML操作库,pugixml的官网是:http://pugixml.org/我们在上面可以下载得到最新版本的pugixml库。下载后主要使用...

F108
2018/07/31
0
0
C++调用pugixml,最后save_file后生成的xml带encoding="utf-8" 怎么修改

C++调用pugixml,最后save_file后生成的xml带encoding="utf-8" 怎么修改 要这种效果 实际

qbmiller
2014/08/01
1K
1
轻量级 C++ 的 XML 处理库--pugixml

pugixml 是一个轻量级的 C++ XML处理库。它具有以下特点: 1、类似DOM接口并具有丰富的遍历/修改功能。 2、非常快的XML解析验证。 3、XPath 1实现复杂的数据驱动的树查询。 4、完全Unicode编...

lcl
2014/02/17
1K
0
FileZilla Client 3.34.0-rc1 发布,FTP 客户端

FileZilla Client 3.34.0-rc1 已发布。更新内容如下: 新功能: Refactoring of the Site Manager internals Moved protocol selection to the top in the Site Manager Adjusted spacing in......

达尔文
2018/06/09
471
2
FileZilla Client 3.24.1 发布,FTP 解决方案

FileZilla Client 3.24.1 发布了,FileZilla 是一个快速、可信赖的 FTP 客户端以及服务器端的开放源代码程序,具有多种特色、直观的接口。本次更新内容如下: 修复在 Windows Vista 和某些 ...

局长
2017/02/22
598
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周二乱弹 —— 开发语言和语言开发的能一样么

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @花间小酌:#今日歌曲推荐# 分享The Score的单曲《Revolution》 《Revolution》- The Score 手机党少年们想听歌,请使劲儿戳(这里) @批判派...

小小编辑
今天
1K
16
oracle ORA-39700: database must be opened with UPGRADE option

ORA-01092: ORACLE instance terminated. Disconnection forced ORA-00704: bootstrap process failure ORA-39700: database must be opened with UPGRADE option 进程 ID: 3650 会话 ID: 29......

Tank_shu
今天
3
0
分布式协调服务zookeeper

ps.本文为《从Paxos到Zookeeper 分布式一致性原理与实践》笔记之一 ZooKeeper ZooKeeper曾是Apache Hadoop的一个子项目,是一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它...

ls_cherish
今天
4
0
聊聊DubboDefaultPropertiesEnvironmentPostProcessor

序 本文主要研究一下DubboDefaultPropertiesEnvironmentPostProcessor DubboDefaultPropertiesEnvironmentPostProcessor dubbo-spring-boot-project-2.7.3/dubbo-spring-boot-compatible/au......

go4it
昨天
2
0
redis 学习2

网站 启动 服务端 启动redis 服务端 在redis 安装目录下 src 里面 ./redis-server & 可以指定 配置文件或者端口 客户端 在 redis 的安装目录里面的 src 里面 ./redis-cli 可以指定 指定 连接...

之渊
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部