void Parser::AddTextValue(const xmlpp::Node* n, std::vector<std::string>& sv) {
    xmlpp::Node *newnode = *(n->get_children().begin());
	const xmlpp::TextNode* nodeTextValue = dynamic_cast
          <const xmlpp::TextNode*>(*((n)->get_children().begin())); //Error de ejecucion
    std::string s_temp(nodeTextValue->get_content());
    sv.push_back(s_temp);

}
    QString XMLParameterReader::demangle (const QString &s)
    {
      std::string  s_temp (s.toStdString()); 		// this function is copied from the ParameterHandler class

      std::string u;
      u.reserve (s_temp.size());

      for (unsigned int i=0; i<s_temp.size(); ++i)
        if (s_temp[i] != '_')
          u.push_back (s_temp[i]);
        else
          {
            Q_ASSERT (i+2 < s_temp.size());

            unsigned char c = 0;
            switch (s_temp[i+1])
              {
                case '0':  c = 0 * 16;  break;
                case '1':  c = 1 * 16;  break;
                case '2':  c = 2 * 16;  break;
                case '3':  c = 3 * 16;  break;
                case '4':  c = 4 * 16;  break;
                case '5':  c = 5 * 16;  break;
                case '6':  c = 6 * 16;  break;
                case '7':  c = 7 * 16;  break;
                case '8':  c = 8 * 16;  break;
                case '9':  c = 9 * 16;  break;
	    case 'a':  c = 10 * 16;  break;
	    case 'b':  c = 11 * 16;  break;
	    case 'c':  c = 12 * 16;  break;
	    case 'd':  c = 13 * 16;  break;
	    case 'e':  c = 14 * 16;  break;
	    case 'f':  c = 15 * 16;  break;
	    default:
		  Q_ASSERT (false);
	  }
	switch (s_temp[i+2])
	  {
	    case '0':  c += 0;  break;
	    case '1':  c += 1;  break;
	    case '2':  c += 2;  break;
	    case '3':  c += 3;  break;
	    case '4':  c += 4;  break;
	    case '5':  c += 5;  break;
	    case '6':  c += 6;  break;
	    case '7':  c += 7;  break;
	    case '8':  c += 8;  break;
	    case '9':  c += 9;  break;
	    case 'a':  c += 10;  break;
	    case 'b':  c += 11;  break;
	    case 'c':  c += 12;  break;
	    case 'd':  c += 13;  break;
	    case 'e':  c += 14;  break;
	    case 'f':  c += 15;  break;
	    default:
		  Q_ASSERT (false);
	  }

    	u.push_back (static_cast<char>(c));

					 // skip the two characters
	    i += 2;
          }

      QString  v (u.c_str());

      return v;
    }