1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
|
/*
* Modification History
*
* 2002-September-12 Jason Rohrer
* Created.
*/
#include "XMLUtils.h"
#include "minorGems/util/stringUtils.h"
#include "minorGems/util/SimpleVector.h"
#include <string.h>
char *XMLUtils::escapeDisallowedCharacters( char *inString ) {
SimpleVector<char> *returnStringVector = new SimpleVector<char>();
int stringLength = strlen( inString );
int i;
for( i=0; i<stringLength; i++ ) {
switch( inString[i] ) {
case '&':
returnStringVector->push_back( '&' );
returnStringVector->push_back( 'a' );
returnStringVector->push_back( 'm' );
returnStringVector->push_back( 'p' );
returnStringVector->push_back( ';' );
break;
case '<':
returnStringVector->push_back( '&' );
returnStringVector->push_back( 'l' );
returnStringVector->push_back( 't' );
returnStringVector->push_back( ';' );
break;
case '>':
returnStringVector->push_back( '&' );
returnStringVector->push_back( 'g' );
returnStringVector->push_back( 't' );
returnStringVector->push_back( ';' );
break;
case '\"':
returnStringVector->push_back( '&' );
returnStringVector->push_back( 'q' );
returnStringVector->push_back( 'u' );
returnStringVector->push_back( 'o' );
returnStringVector->push_back( 't' );
returnStringVector->push_back( ';' );
break;
case '\'':
returnStringVector->push_back( '&' );
returnStringVector->push_back( 'a' );
returnStringVector->push_back( 'p' );
returnStringVector->push_back( 'o' );
returnStringVector->push_back( 's' );
returnStringVector->push_back( ';' );
break;
default:
returnStringVector->push_back( inString[i] );
break;
}
}
int numChars = returnStringVector->size();
char *returnString = new char[ numChars + 1 ];
for( i=0; i<numChars; i++ ) {
returnString[i] = *( returnStringVector->getElement( i ) );
}
returnString[ numChars ] = '\0';
delete returnStringVector;
return returnString;
}
|