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; }