一、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;
}
目前隻解析配置檔案。
完!