一、TinyXml类简单介绍
TinyXml实现的时DOM访问模型,因此提供了一系列的类对应XML文件中的各个节点。主要类间的关系如下图所示:
TiXmlBase:其他类的基类,是个抽象类
TiXmlNode:表示一个节点,包含节点的一般方法,如访问自节点、兄弟节点、编辑自身、编辑子节电
TiXmlDocument:表示整个XML文档,不对应其中某个特定的节点。
TiXmlElement:表示元素节点,可以包含子节点和TiXmlAttribute
TiXmlComment:表示注释
TiXmlDeclaration:表示声明
TiXmlText:表示文本节点
TiXmlUnknown:表示未知节点,通常是出错了
TiXmlAttribute:表示一个元素的属性
二、TinyXml使用
TiXmlDocument doc();//创建对象
doc.LoadFile("filePath.xml");// 载入xml文档
解析xml所有节点与节点值实例:
int CParseConfig::ParseFileToMap(std::string filePath, ConfigMap & LoadData)
{
TiXmlDocument m_Dxml;
m_Dxml.LoadFile(filePath.c_str());
const TiXmlElement* root = m_Dxml.RootElement();
if(NULL == root)
{
LOG_DEBUG("Get root xml element error!");
return FUN_FAILED;
}
for( const TiXmlElement* child = root->FirstChildElement(); child; child=child->NextSiblingElement())
{
LOG_DEBUG( "key:" << child->Value() << ",value:" << child->GetText() );//输入解析数据
LoadData.insert(std::pair<std::string, std::string>(child->Value(),child->GetText() ) );
}
return FUN_NO_ERROR;
}
目前只解析配置文件。
完!