天天看點

tinyxml解析配置檔案

一、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;

}

目前隻解析配置檔案。

完!