File: XMLUtils.cpp

package info (click to toggle)
primrose 6%2Bdfsg1-4
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, buster
  • size: 5,300 kB
  • ctags: 3,385
  • sloc: cpp: 27,318; php: 765; ansic: 636; objc: 272; sh: 136; makefile: 95; perl: 67
file content (83 lines) | stat: -rw-r--r-- 2,498 bytes parent folder | download | duplicates (30)
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;
    }