本文整理汇总了C++中CXMLNode::ChildrenBegin方法的典型用法代码示例。如果您正苦于以下问题:C++ CXMLNode::ChildrenBegin方法的具体用法?C++ CXMLNode::ChildrenBegin怎么用?C++ CXMLNode::ChildrenBegin使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CXMLNode
的用法示例。
在下文中一共展示了CXMLNode::ChildrenBegin方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Save
bool CLocalServer::Save ( void )
{
if ( m_pConfig && m_pConfig->GetRootNode() )
{
StoreConfigValue ( "servername", ( m_pEditName->GetText().length() > 0 ) ? m_pEditName->GetText().c_str() : "MTA Local Server" );
StoreConfigValue ( "maxplayers", ( atoi ( m_pEditPlayers->GetText().c_str() ) ) ? m_pEditPlayers->GetText().c_str() : "32" );
StoreConfigValue ( "donotbroadcastlan", ( m_pBroadcastLan->IsActive () ) ? "0" : "1" );
StoreConfigValue ( "ase", ( m_pBroadcastInternet->IsActive () ) ? "1" : "0" );
StoreConfigValue ( "password", m_pEditPass->GetText().c_str() );
// Remove old resources from the config
CXMLNode* pRoot = m_pConfig->GetRootNode();
list < CXMLNode* > ::const_iterator iter = pRoot->ChildrenBegin ();
for ( ; iter != pRoot->ChildrenEnd (); iter++ )
{
CXMLNode* pNode = reinterpret_cast < CXMLNode* > ( *iter );
if ( pNode->GetTagName().compare ( "resource" ) == 0 )
{
pRoot->DeleteSubNode ( pNode );
iter = pRoot->ChildrenBegin ();
}
}
// Add new resources to the config
for ( int i = 0; i < m_pResourcesCur->GetRowCount(); i++ )
{
CXMLNode* pResourceNode = pRoot->CreateSubNode ( "resource" );
pResourceNode->GetAttributes().Create ( "src" )->SetValue ( m_pResourcesCur->GetItemText ( i, 1 ) );
pResourceNode->GetAttributes().Create ( "startup" )->SetValue ( "1" );
pResourceNode->GetAttributes().Create ( "protected" )->SetValue ( "0" );
}
m_pConfig->Write ();
}
return true;
}
示例2: LoadListsFromXML
void CWebCore::LoadListsFromXML ( bool bWhitelist, bool bBlacklist, bool bCustomLists )
{
if ( !m_pXmlConfig )
return;
CXMLNode* pRootNode = m_pXmlConfig->GetRootNode ();
if ( !pRootNode )
return;
if ( bWhitelist )
{
CXMLNode* pWhiteSubNode = pRootNode->FindSubNode ( "globalwhitelist" );
if ( pWhiteSubNode )
{
for ( std::list<CXMLNode*>::iterator iter = pWhiteSubNode->ChildrenBegin (); iter != pWhiteSubNode->ChildrenEnd (); ++iter )
{
AddAllowedPage ( (*iter)->GetTagContent (), eWebFilterType::WEBFILTER_DYNAMIC );
}
}
}
if ( bBlacklist )
{
CXMLNode* pBlackSubNode = pRootNode->FindSubNode ( "globalblacklist" );
if ( pBlackSubNode )
{
for ( std::list<CXMLNode*>::iterator iter = pBlackSubNode->ChildrenBegin (); iter != pBlackSubNode->ChildrenEnd (); ++iter )
{
AddBlockedPage ( (*iter)->GetTagContent (), eWebFilterType::WEBFILTER_DYNAMIC );
}
}
}
if ( bCustomLists )
{
CXMLNode* pBlackSubNode = pRootNode->FindSubNode ( "customblacklist" );
if ( pBlackSubNode )
{
for ( std::list<CXMLNode*>::iterator iter = pBlackSubNode->ChildrenBegin (); iter != pBlackSubNode->ChildrenEnd (); ++iter )
{
AddBlockedPage ( (*iter)->GetTagContent (), eWebFilterType::WEBFILTER_USER );
}
}
CXMLNode* pWhiteSubNode = pRootNode->FindSubNode ( "customwhitelist" );
if ( pWhiteSubNode )
{
for ( std::list<CXMLNode*>::iterator iter = pWhiteSubNode->ChildrenBegin (); iter != pWhiteSubNode->ChildrenEnd (); ++iter )
{
AddAllowedPage ( (*iter)->GetTagContent (), eWebFilterType::WEBFILTER_USER );
}
}
}
}
示例3: XMLNodeGetChildren
int CLuaFunctionDefs::XMLNodeGetChildren ( lua_State* luaVM )
{
// xmlNode*, [index]
CXMLNode* pNode = NULL;
unsigned int uiIndex = 0;
CScriptArgReader argStream ( luaVM );
argStream.ReadUserData ( pNode );
argStream.ReadNumber ( uiIndex, -1 );
if ( !argStream.HasErrors ( ) )
{
if ( pNode )
{
bool bGetAllChildren = uiIndex == -1;
CXMLNode * pFoundNode = NULL;
if ( !bGetAllChildren )
{
pFoundNode = pNode->GetSubNode ( uiIndex );
if ( pFoundNode )
{
lua_pushxmlnode ( luaVM, pFoundNode );
return 1;
}
}
else
{
lua_newtable ( luaVM );
uiIndex = 0;
list < CXMLNode * > ::iterator iter = pNode->ChildrenBegin ();
for ( ; iter != pNode->ChildrenEnd () ; iter++ )
{
lua_pushnumber ( luaVM, ++uiIndex );
lua_pushxmlnode ( luaVM, ( CXMLNode * ) ( *iter ) );
lua_settable ( luaVM, -3 );
}
return 1;
}
}
}
else
m_pScriptDebugging->LogCustom ( luaVM, argStream.GetFullErrorMessage() );
lua_pushboolean ( luaVM, false );
return 1;
}
示例4: LoadSubNodes
bool CResourceMapItem::LoadSubNodes ( CXMLNode& Node, CElement* pParent, vector < CElement* >* pAdded, bool bIsDuringStart )
{
// Iterate the nodes
CXMLNode* pNode = NULL;
list < CXMLNode * > ::iterator iter = Node.ChildrenBegin ();
for ( ; iter != Node.ChildrenEnd () ; iter++ )
{
// Grab the node
pNode = *iter;
if ( pNode )
{
// Handle it (if it can't be handled, just ignore it and continue to the next)
HandleNode ( *pNode, pParent, pAdded, bIsDuringStart, NULL );
}
}
// Success
return true;
}
示例5: Load
bool CLocalServer::Load ( void )
{
// Get server module root
SString strServerPath = CalcMTASAPath( PathJoin ( "server", "mods", "deathmatch" ) );
m_pConfig = g_pCore->GetXML ()->CreateXML ( PathJoin ( strServerPath, m_strConfig ) );
if ( m_pConfig && m_pConfig->Parse() )
{
CXMLNode* pRoot = m_pConfig->GetRootNode();
CXMLNode* pServerName = pRoot->FindSubNode ( "servername", 0 );
if ( pServerName ) m_pEditName->SetText ( pServerName->GetTagContent().c_str() );
CXMLNode* pServerPass = pRoot->FindSubNode ( "password", 0 );
if ( pServerPass ) m_pEditPass->SetText ( pServerPass->GetTagContent().c_str() );
CXMLNode* pServerPlayers = pRoot->FindSubNode ( "maxplayers", 0 );
if ( pServerPlayers ) m_pEditPlayers->SetText ( pServerPlayers->GetTagContent().c_str() );
// Read the startup resources
list < CXMLNode* > ::const_iterator iter = pRoot->ChildrenBegin ();
for ( ; iter != pRoot->ChildrenEnd (); iter++ )
{
CXMLNode* pNode = reinterpret_cast < CXMLNode* > ( *iter );
if ( pNode->GetTagName ().compare ( "resource" ) == 0 )
{
CXMLAttribute* src = pNode->GetAttributes().Find ( "src" );
if ( src && src->GetValue()[1] )
{
m_pResourcesCur->SetItemText ( m_pResourcesCur->AddRow (), m_hResourcesCur, src->GetValue().c_str() );
}
}
}
}
// Get list of resource names
std::vector < SString > resourceNameList;
GetResourceNameList ( resourceNameList, strServerPath );
// Put resource names into the GUI
for ( std::vector < SString >::iterator iter = resourceNameList.begin () ; iter != resourceNameList.end () ; ++iter )
HandleResource ( *iter );
return true;
}
示例6: xmlNodeGetChildren
int CLuaXMLDefs::xmlNodeGetChildren ( lua_State* luaVM )
{
CXMLNode* pNode;
unsigned int uiIndex;
CScriptArgReader argStream ( luaVM );
argStream.ReadUserData ( pNode );
argStream.ReadNumber ( uiIndex, -1 );
if ( !argStream.HasErrors () )
{
bool bGetAllChildren = uiIndex == -1;
if ( !bGetAllChildren )
{
CXMLNode* pFoundNode = pNode->GetSubNode ( uiIndex );
if ( pFoundNode )
{
lua_pushxmlnode ( luaVM, pFoundNode );
return 1;
}
}
else
{
lua_newtable ( luaVM );
uiIndex = 0;
for (auto iter = pNode->ChildrenBegin (); iter != pNode->ChildrenEnd (); ++iter )
{
lua_pushnumber ( luaVM, ++uiIndex );
lua_pushxmlnode ( luaVM, *iter );
lua_settable ( luaVM, -3 );
}
return 1;
}
}
else
m_pScriptDebugging->LogCustom ( luaVM, argStream.GetFullErrorMessage () );
lua_pushboolean ( luaVM, false );
return 1;
}
示例7: Load
bool CLocalServer::Load ( void )
{
// Get server module root
SString strServerPath = g_pCore->GetInstallRoot ();
strServerPath += "/server/mods/deathmatch";
SString strConfigPath ( "%s/%s", strServerPath.c_str (), m_strConfig.c_str () );
m_pConfig = g_pCore->GetXML ()->CreateXML ( strConfigPath );
if ( m_pConfig && m_pConfig->Parse() )
{
CXMLNode* pRoot = m_pConfig->GetRootNode();
CXMLNode* pServerName = pRoot->FindSubNode ( "servername", 0 );
if ( pServerName ) m_pEditName->SetText ( pServerName->GetTagContent().c_str() );
CXMLNode* pServerPass = pRoot->FindSubNode ( "password", 0 );
if ( pServerPass ) m_pEditPass->SetText ( pServerPass->GetTagContent().c_str() );
CXMLNode* pServerPlayers = pRoot->FindSubNode ( "maxplayers", 0 );
if ( pServerPlayers ) m_pEditPlayers->SetText ( pServerPlayers->GetTagContent().c_str() );
// Read the startup resources
list < CXMLNode* > ::const_iterator iter = pRoot->ChildrenBegin ();
for ( ; iter != pRoot->ChildrenEnd (); iter++ )
{
CXMLNode* pNode = reinterpret_cast < CXMLNode* > ( *iter );
if ( pNode->GetTagName ().compare ( "resource" ) == 0 )
{
CXMLAttribute* src = pNode->GetAttributes().Find ( "src" );
if ( src && src->GetValue()[1] )
{
m_pResourcesCur->SetItemText ( m_pResourcesCur->AddRow (), m_hResourcesCur, src->GetValue().c_str() );
}
}
}
}
//
SString strResourceDirectoryPath ( "%s/resources/*", strServerPath.c_str () );
unsigned int uiCount = 0;
#ifdef WIN32
// Find all .map files in the maps folder
WIN32_FIND_DATA FindData;
HANDLE hFind = FindFirstFile ( strResourceDirectoryPath, &FindData );
if ( hFind != INVALID_HANDLE_VALUE )
{
// Remove the extension and store the time
FindData.cFileName [ strlen ( FindData.cFileName ) - 4 ] = 0;
// Add each file
do
{
if ( strcmp ( FindData.cFileName, ".." ) != 0 && strcmp ( FindData.cFileName, "." ) != 0 )
{
char * extn = NULL;
if ( ( FindData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY ) != FILE_ATTRIBUTE_DIRECTORY )
{
extn = &FindData.cFileName [ strlen ( FindData.cFileName ) - 3 ];
FindData.cFileName [ strlen ( FindData.cFileName ) - 4 ] = 0;
}
if ( extn == NULL || strcmp ( extn, "zip" ) == 0 )
{
// Add the resource
HandleResource ( FindData.cFileName );
// Increment the counter
uiCount++;
}
}
} while ( FindNextFile ( hFind, &FindData ) );
// Close the search
FindClose ( hFind );
}
#else
DIR *Dir;
struct dirent *DirEntry;
time_t llHighestTime = 0;
char szPath[MAX_PATH] = {0};
if ( ( Dir = opendir ( strResourceDirectoryPath ) ) )
{
while ( ( DirEntry = readdir ( Dir ) ) != NULL )
{
// Skip . and .. entry
if ( strcmp ( DirEntry->d_name, "." ) != 0 &&
strcmp ( DirEntry->d_name, ".." ) != 0 )
{
struct stat Info;
bool bDir = false;
// Get the path
if ( strlen(szBuffer) + strlen(DirEntry->d_name) < MAX_PATH )
{
strcpy ( szPath, szBuffer );
unsigned long ulPathLength = strlen ( szPath );
if ( szPath [ ulPathLength-1 ] != '/') strcat ( szPath, "/" );
strcat ( szPath, DirEntry->d_name );
//.........这里部分代码省略.........