//==== Encode Data Into XML Data Struct ====// xmlNodePtr ParmContainer::EncodeXml( xmlNodePtr & node ) { xmlNodePtr parmcontain_node = xmlNewChild( node, NULL, BAD_CAST "ParmContainer", NULL ); if ( parmcontain_node ) { XmlUtil::AddStringNode( parmcontain_node, "ID", m_ID ); XmlUtil::AddStringNode( parmcontain_node, "Name", m_Name ); } xmlNodePtr gnode; LoadGroupParmVec( m_ParmVec, false ); map< string, vector< string > >::iterator groupIter; for ( groupIter = m_GroupParmMap.begin() ; groupIter != m_GroupParmMap.end() ; groupIter++ ) { string name = groupIter->first; gnode = xmlNewChild( parmcontain_node, NULL, BAD_CAST name.c_str(), NULL ); if ( gnode ) { vector< string >::iterator parmIter; for ( parmIter = groupIter->second.begin(); parmIter != groupIter->second.end(); parmIter++ ) { Parm* p = ParmMgr.FindParm( ( *parmIter ) ); p->EncodeXml( gnode ); } } } return parmcontain_node; }
//==== Encode Data Into XML Data Struct ====// xmlNodePtr UserParmContainer::EncodeXml( xmlNodePtr & node ) { xmlNodePtr userparmcontain_node = xmlNewChild( node, NULL, BAD_CAST "UserParmContainer", NULL ); if ( userparmcontain_node ) { XmlUtil::AddIntNode( userparmcontain_node, "NumUserParms", (int)m_UserParmVec.size() ); for ( int i = 0; i < static_cast<int>( m_UserParmVec.size() ); i++ ) { Parm* p = m_UserParmVec[i]; if ( p ) { p->EncodeXml( userparmcontain_node, true ); } } } return userparmcontain_node; }