Pugixml图文讲解

目录

简介

注意事项

Pugixml节点类型

XML数据加载和输出

字符集识别和转换

API


文记录Pugixml 的使用心得,篇幅较小,主要总结其中的重点部分,以文字和图表的方式叙述。

简介

Pugixml是使用C++实现的XML解析/生成库。我个人比较推荐,理由可看官网https://pugixml.org/介绍,其中我比较看重以下几点:

  1. Pugixml 库仅由pugixml.cpp、pugixml.hpp和pugiconfig.hpp三个文件组成。
  2. Pugixml 库升级后,pugiconfig.hpp不需要覆盖(该文件仅作为配置)。
  3. Pugixml 库支持charwchar_t字符编程。
  4. Pugixml 库解析XML数据前,可自动识别XML数据的字符集,并自动地将XML数据的字符集转换为当前字符集(UTF-8或UTF-16/32)。
  5. Pugixml 库解析速度快。
  6. Pugixml 库支持Xpath表达式遍历节点。

注意事项

  1. Pugixml 库解析XML数据前,注意可自动识别的字符集有限,目前仅能识别UTF-8/UTF-16/UTF32和Latin-1字符集,而其他的字符集无法自动识别(如中文、日本、韩文等字符集),必须显式指定后才可识别。
  2. Pugixml 库解析XML数据前,注意字符集的自动转换。即如果当前使用char接口,则输入数据最终被转换为UTF-8字符集,如果当前使用wchar_t接口,则输入数据最终被转换为UTF-16/32字符集。至于是使用char接口还是wchar_t接口,要由使用者是否在pugiconfig.hpp中启用PUGIXML_WCHAR_MODE宏来决定。

Pugixml节点类型

XML数据加载和输出

字符集识别和转换

API

重点了解XML数据加载和输出,以及字符集自动识别和转换后,API的熟悉只需多用即可,基于DOM的API其实是很简单的。甚至,也可以自定义某些功能的函数,例如:

template<typename T>
bool create_attr_node(pugi::xml_node& node, const pugi::char_t* pAttrName, const T& attrVal)
{
	pugi::xml_attribute attr = node.append_attribute(pAttrName);
	return (attr && attr.set_value(attrVal));
}

 

  • 8
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值