tinyxml读取xml文件

3880阅读 0评论2013-02-28 zpf1218
分类:其他平台




1,2,3,4,5
0






10,11,12,13,14,15,16
5,6,7,8,9







        TiXmlDocument xmlDoc( splitRuleTable.c_str() );
        if(!xmlDoc.LoadFile())
        {
                return false;
        }


        TiXmlElement *pRootNode = xmlDoc.RootElement();
        if(pRootNode == NULL)
        {
                return false;
        }


        TiXmlElement *pCurRecord = pRootNode->FirstChildElement();
        while(pCurRecord)
        {
                CRuleTable cTable;
                CTailIpPort::vctIpPort  vctIpPortPool;
                
                TiXmlElement *pTableEnVal = pCurRecord->FirstChildElement("TableEnVal");
                string strTableEnVal = pTableEnVal->FirstChild()->Value();


                int32 nIsTailSplit = 0 ;
                pTableEnVal->QueryIntAttribute("IsTailSplit", &nIsTailSplit);
                pTableEnVal->QueryIntAttribute("SplitType", &cTable.m_nTailFieldEnumVal);
                cTable.m_nIsTailSplit = (int16)nIsTailSplit;
                
                TiXmlElement *pTailNum = pCurRecord->FirstChildElement("TailNumber");
                string strTailNum = pTailNum->FirstChild()->Value();


                TiXmlElement *pIpList = pCurRecord->FirstChildElement("IPPortList");
                TiXmlElement * pConnet = pIpList->FirstChildElement("Connect");
                for(;pConnet; pConnet = pConnet->NextSiblingElement())
                {
                        CIpPort cIpPort; 
                        cIpPort.m_strIp = pConnet->Attribute("ip");
                        pConnet->QueryIntAttribute("port", &cIpPort.m_nPort);
                        vctIpPortPool.push_back(cIpPort);
                }

                pCurRecord = pRootNode->NextSiblingElement();
        }



上一篇:分布式key/value存储tair
下一篇:linux下用valgrind检查程序内存泄漏