const QString processNode( QDomElement &Node )
const QString processNode( QDomElement Node )
const QString processNode( QDomElement &Node ){	if( Node.nodeName() == "namelist" )	{		// Get the namelist and select a random name!		// ...		QString selectedName = Node.text();		return selectedName;	}	else if( Node.nodeName() == "random" )	{		if( Node.attributes().contains("min") && Node.attributes().contains("max") )			return QString("%1").arg( RandomNum( Node.attributeNode("min").nodeValue().toInt(), Node.attributeNode("max").nodeValue().toInt() ) );		else if( Node.attributes().contains("list") )		{			QStringList RandValues = QStringList::split(",", Node.attributeNode("list").nodeValue());			return RandValues[ RandomNum(0,RandValues.size()-1) ];		}		else if( Node.attributes().contains("dice") )			return QString("%1").arg(rollDice(Node.attributeNode("dice").nodeValue()));		else			return QString("0");	}	else if( Node.nodeName() == "colorlist" )	{		QString Value = QString();		if( Node.hasChildNodes() ) //random i.e.			for( int i = 0; i < Node.childNodes().count(); i++ )			{				if( Node.childNodes().item( i ).isText() )					Value += Node.childNodes().item( i ).toText().data();				else if( Node.childNodes().item( i ).isElement() )					Value += processNode( Node.childNodes().item( i ).toElement() );			}		else			Value = QString("%1").arg(addrandomcolor( NULL, (char*)Node.nodeValue().latin1() ));		return Value;	}	if( !Node.hasChildNodes() )		return Node.text();	// Process the childnodes	QDomNodeList childNodes = Node.childNodes();	for( int i = 0; i < childNodes.count(); i++ )	{		if( !childNodes.item( i ).isElement() )			continue;		return processNode( Node );	}	return "";}