我自己封装tinyxml2的库形成了一个解析xmld的类,分享在此,欢迎与我交流。
tinyxml2是一个解析xml的轻型库,为了方便以后的使用,我自己封装了一个工具类。
某些格式转换的代码比如string和utf-8互转的代码可以根据自己的需要进行实现。
tinyxml2库下载:https://github.com/leethomason/tinyxml2
//tinyXmlPlus.h文件
#pragma once
#include "tinyxml2-master\\tinyxml2.h"
class CTineyXmlPlus
{
public:
CTineyXmlPlus(std::string strXmlPath);
~CTineyXmlPlus();
public:
tinyxml2::XMLDocument* GetMyDocument(); //获取xml对象
tinyxml2::XMLElement *GetRootElement(); //获取根节点
void initDocument(); //初始化文档
public:
//按xml表的顺序遍历全部节点
bool ReadAllXmlValue(std::vector<std::string>& vectorValue);
//读取全部的一级节点
bool ReadAllFirstLevelValue(std::vector<std::string>& vectorValue);
//读取某个一级节点下的全部子节点
bool ReadSpecifyChildValue(std::string strFatherNodeValue, std::vector<std::string>& vectorValue);
protected:
tinyxml2::XMLDocument m_mydocument; //声明xml对象
tinyxml2::XMLElement *m_pRootElement; //根节点
tinyxml2::XMLElement *m_pSurface; //节点入口,获取第一个值为value的子节点 默认为空则返回第一个节点
std::vector<std::string> m_vectorValue;
std::vector<std::string> ReadXml(tinyxml2::XMLElement * pSurface);
};
//tinyXmlPlus.cpp文件
#include "stdafx.h"
#include "TineyXmlPlus.h"