Mbed port of the Simple Plain Xml parser. See http://code.google.com/p/spxml/ for more details. This library uses less memory and is much better suited to streaming data than TinyXML (doesn\'t use as much C++ features, and especially works without streams). See http://mbed.org/users/hlipka/notebook/xml-parsing/ for usage examples.

Dependents:   spxmltest_weather VFD_fontx2_weather weather_LCD_display News_LCD_display ... more

Committer:
hlipka
Date:
Wed Nov 24 20:52:14 2010 +0000
Revision:
0:3fa97f2c0505
initial revision

Who changed what in which revision?

UserRevisionLine numberNew contents of line
hlipka 0:3fa97f2c0505 1 /*
hlipka 0:3fa97f2c0505 2 * Copyright 2007 Stephen Liu
hlipka 0:3fa97f2c0505 3 * LGPL, see http://code.google.com/p/spxml/
hlipka 0:3fa97f2c0505 4 * For license terms, see the file COPYING along with this library.
hlipka 0:3fa97f2c0505 5 */
hlipka 0:3fa97f2c0505 6
hlipka 0:3fa97f2c0505 7 #include <string.h>
hlipka 0:3fa97f2c0505 8 #include <stdlib.h>
hlipka 0:3fa97f2c0505 9
hlipka 0:3fa97f2c0505 10 #include "mstring.h"
hlipka 0:3fa97f2c0505 11
hlipka 0:3fa97f2c0505 12 #include "spxmlevent.hpp"
hlipka 0:3fa97f2c0505 13 #include "spxmlutils.hpp"
hlipka 0:3fa97f2c0505 14
hlipka 0:3fa97f2c0505 15 SP_XmlPullEvent :: SP_XmlPullEvent( int eventType )
hlipka 0:3fa97f2c0505 16 : mEventType( eventType )
hlipka 0:3fa97f2c0505 17 {
hlipka 0:3fa97f2c0505 18 }
hlipka 0:3fa97f2c0505 19
hlipka 0:3fa97f2c0505 20 SP_XmlPullEvent :: ~SP_XmlPullEvent()
hlipka 0:3fa97f2c0505 21 {
hlipka 0:3fa97f2c0505 22 }
hlipka 0:3fa97f2c0505 23
hlipka 0:3fa97f2c0505 24 int SP_XmlPullEvent :: getEventType()
hlipka 0:3fa97f2c0505 25 {
hlipka 0:3fa97f2c0505 26 return mEventType;
hlipka 0:3fa97f2c0505 27 }
hlipka 0:3fa97f2c0505 28
hlipka 0:3fa97f2c0505 29 //=========================================================
hlipka 0:3fa97f2c0505 30
hlipka 0:3fa97f2c0505 31 SP_XmlPullEventQueue :: SP_XmlPullEventQueue()
hlipka 0:3fa97f2c0505 32 {
hlipka 0:3fa97f2c0505 33 mQueue = new SP_XmlQueue();
hlipka 0:3fa97f2c0505 34 }
hlipka 0:3fa97f2c0505 35
hlipka 0:3fa97f2c0505 36 SP_XmlPullEventQueue :: ~SP_XmlPullEventQueue()
hlipka 0:3fa97f2c0505 37 {
hlipka 0:3fa97f2c0505 38 for( void * item = mQueue->pop(); NULL != item; item = mQueue->pop() ) {
hlipka 0:3fa97f2c0505 39 delete (SP_XmlPullEvent*)item;
hlipka 0:3fa97f2c0505 40 }
hlipka 0:3fa97f2c0505 41
hlipka 0:3fa97f2c0505 42 delete mQueue;
hlipka 0:3fa97f2c0505 43 }
hlipka 0:3fa97f2c0505 44
hlipka 0:3fa97f2c0505 45 void SP_XmlPullEventQueue :: enqueue( SP_XmlPullEvent * event )
hlipka 0:3fa97f2c0505 46 {
hlipka 0:3fa97f2c0505 47 mQueue->push( event );
hlipka 0:3fa97f2c0505 48 }
hlipka 0:3fa97f2c0505 49
hlipka 0:3fa97f2c0505 50 SP_XmlPullEvent * SP_XmlPullEventQueue :: dequeue()
hlipka 0:3fa97f2c0505 51 {
hlipka 0:3fa97f2c0505 52 SP_XmlPullEvent * event = (SP_XmlPullEvent*)mQueue->pop();
hlipka 0:3fa97f2c0505 53 return event;
hlipka 0:3fa97f2c0505 54 }
hlipka 0:3fa97f2c0505 55
hlipka 0:3fa97f2c0505 56 //=========================================================
hlipka 0:3fa97f2c0505 57
hlipka 0:3fa97f2c0505 58 SP_XmlStartDocEvent :: SP_XmlStartDocEvent()
hlipka 0:3fa97f2c0505 59 : SP_XmlPullEvent( eStartDocument )
hlipka 0:3fa97f2c0505 60 {
hlipka 0:3fa97f2c0505 61 }
hlipka 0:3fa97f2c0505 62
hlipka 0:3fa97f2c0505 63 SP_XmlStartDocEvent :: ~SP_XmlStartDocEvent()
hlipka 0:3fa97f2c0505 64 {
hlipka 0:3fa97f2c0505 65 }
hlipka 0:3fa97f2c0505 66
hlipka 0:3fa97f2c0505 67 //=========================================================
hlipka 0:3fa97f2c0505 68
hlipka 0:3fa97f2c0505 69 SP_XmlEndDocEvent :: SP_XmlEndDocEvent()
hlipka 0:3fa97f2c0505 70 : SP_XmlPullEvent( eEndDocument )
hlipka 0:3fa97f2c0505 71 {
hlipka 0:3fa97f2c0505 72 }
hlipka 0:3fa97f2c0505 73
hlipka 0:3fa97f2c0505 74 SP_XmlEndDocEvent :: ~SP_XmlEndDocEvent()
hlipka 0:3fa97f2c0505 75 {
hlipka 0:3fa97f2c0505 76 }
hlipka 0:3fa97f2c0505 77
hlipka 0:3fa97f2c0505 78 //=========================================================
hlipka 0:3fa97f2c0505 79
hlipka 0:3fa97f2c0505 80 SP_XmlDocTypeEvent :: SP_XmlDocTypeEvent()
hlipka 0:3fa97f2c0505 81 : SP_XmlPullEvent( eDocType )
hlipka 0:3fa97f2c0505 82 {
hlipka 0:3fa97f2c0505 83 memset( mName, 0, sizeof( mName ) );
hlipka 0:3fa97f2c0505 84 memset( mSystemID, 0, sizeof( mSystemID ) );
hlipka 0:3fa97f2c0505 85 memset( mPublicID, 0, sizeof( mPublicID ) );
hlipka 0:3fa97f2c0505 86 memset( mDTD, 0, sizeof( mDTD ) );
hlipka 0:3fa97f2c0505 87 }
hlipka 0:3fa97f2c0505 88
hlipka 0:3fa97f2c0505 89 SP_XmlDocTypeEvent :: ~SP_XmlDocTypeEvent()
hlipka 0:3fa97f2c0505 90 {
hlipka 0:3fa97f2c0505 91 }
hlipka 0:3fa97f2c0505 92
hlipka 0:3fa97f2c0505 93 void SP_XmlDocTypeEvent :: setName( const char * name )
hlipka 0:3fa97f2c0505 94 {
hlipka 0:3fa97f2c0505 95 strncpy( mName, name, sizeof( mName ) - 1 );
hlipka 0:3fa97f2c0505 96 }
hlipka 0:3fa97f2c0505 97
hlipka 0:3fa97f2c0505 98 const char * SP_XmlDocTypeEvent :: getName() const
hlipka 0:3fa97f2c0505 99 {
hlipka 0:3fa97f2c0505 100 return mName;
hlipka 0:3fa97f2c0505 101 }
hlipka 0:3fa97f2c0505 102
hlipka 0:3fa97f2c0505 103 void SP_XmlDocTypeEvent :: setSystemID( const char * systemID )
hlipka 0:3fa97f2c0505 104 {
hlipka 0:3fa97f2c0505 105 strncpy( mSystemID, systemID, sizeof( mSystemID ) - 1 );
hlipka 0:3fa97f2c0505 106 }
hlipka 0:3fa97f2c0505 107
hlipka 0:3fa97f2c0505 108 const char * SP_XmlDocTypeEvent :: getSystemID() const
hlipka 0:3fa97f2c0505 109 {
hlipka 0:3fa97f2c0505 110 return mSystemID;
hlipka 0:3fa97f2c0505 111 }
hlipka 0:3fa97f2c0505 112
hlipka 0:3fa97f2c0505 113 void SP_XmlDocTypeEvent :: setPublicID( const char * publicID )
hlipka 0:3fa97f2c0505 114 {
hlipka 0:3fa97f2c0505 115 strncpy( mPublicID, publicID, sizeof( mPublicID ) - 1 );
hlipka 0:3fa97f2c0505 116 }
hlipka 0:3fa97f2c0505 117
hlipka 0:3fa97f2c0505 118 const char * SP_XmlDocTypeEvent :: getPublicID() const
hlipka 0:3fa97f2c0505 119 {
hlipka 0:3fa97f2c0505 120 return mPublicID;
hlipka 0:3fa97f2c0505 121 }
hlipka 0:3fa97f2c0505 122
hlipka 0:3fa97f2c0505 123 void SP_XmlDocTypeEvent :: setDTD( const char * dtd )
hlipka 0:3fa97f2c0505 124 {
hlipka 0:3fa97f2c0505 125 strncpy( mDTD, dtd, sizeof( mDTD ) - 1 );
hlipka 0:3fa97f2c0505 126 }
hlipka 0:3fa97f2c0505 127
hlipka 0:3fa97f2c0505 128 const char * SP_XmlDocTypeEvent :: getDTD() const
hlipka 0:3fa97f2c0505 129 {
hlipka 0:3fa97f2c0505 130 return mDTD;
hlipka 0:3fa97f2c0505 131 }
hlipka 0:3fa97f2c0505 132
hlipka 0:3fa97f2c0505 133 //=========================================================
hlipka 0:3fa97f2c0505 134
hlipka 0:3fa97f2c0505 135 SP_XmlPIEvent :: SP_XmlPIEvent()
hlipka 0:3fa97f2c0505 136 : SP_XmlPullEvent( ePI )
hlipka 0:3fa97f2c0505 137 {
hlipka 0:3fa97f2c0505 138 memset( mTarget, 0, sizeof( mTarget ) );
hlipka 0:3fa97f2c0505 139 mData = NULL;
hlipka 0:3fa97f2c0505 140 }
hlipka 0:3fa97f2c0505 141
hlipka 0:3fa97f2c0505 142 SP_XmlPIEvent :: ~SP_XmlPIEvent()
hlipka 0:3fa97f2c0505 143 {
hlipka 0:3fa97f2c0505 144 if( NULL != mData ) free( mData );
hlipka 0:3fa97f2c0505 145 mData = NULL;
hlipka 0:3fa97f2c0505 146 }
hlipka 0:3fa97f2c0505 147
hlipka 0:3fa97f2c0505 148 void SP_XmlPIEvent :: setTarget( const char * target )
hlipka 0:3fa97f2c0505 149 {
hlipka 0:3fa97f2c0505 150 snprintf( mTarget, sizeof( mTarget ), "%s", target );
hlipka 0:3fa97f2c0505 151 }
hlipka 0:3fa97f2c0505 152
hlipka 0:3fa97f2c0505 153 const char * SP_XmlPIEvent :: getTarget()
hlipka 0:3fa97f2c0505 154 {
hlipka 0:3fa97f2c0505 155 return mTarget;
hlipka 0:3fa97f2c0505 156 }
hlipka 0:3fa97f2c0505 157
hlipka 0:3fa97f2c0505 158 void SP_XmlPIEvent :: setData( const char * data, int len )
hlipka 0:3fa97f2c0505 159 {
hlipka 0:3fa97f2c0505 160 if( NULL != data ) {
hlipka 0:3fa97f2c0505 161 if( NULL != mData ) free( mData );
hlipka 0:3fa97f2c0505 162 mData = (char*)malloc( len + 1 );
hlipka 0:3fa97f2c0505 163 memcpy( mData, data, len );
hlipka 0:3fa97f2c0505 164 mData[ len ] = '\0';
hlipka 0:3fa97f2c0505 165 }
hlipka 0:3fa97f2c0505 166 }
hlipka 0:3fa97f2c0505 167
hlipka 0:3fa97f2c0505 168 const char * SP_XmlPIEvent :: getData()
hlipka 0:3fa97f2c0505 169 {
hlipka 0:3fa97f2c0505 170 return mData;
hlipka 0:3fa97f2c0505 171 }
hlipka 0:3fa97f2c0505 172
hlipka 0:3fa97f2c0505 173 //=========================================================
hlipka 0:3fa97f2c0505 174
hlipka 0:3fa97f2c0505 175 SP_XmlDocDeclEvent :: SP_XmlDocDeclEvent()
hlipka 0:3fa97f2c0505 176 : SP_XmlPullEvent( eDocDecl )
hlipka 0:3fa97f2c0505 177 {
hlipka 0:3fa97f2c0505 178 memset( mVersion, 0, sizeof( mVersion ) );
hlipka 0:3fa97f2c0505 179 memset( mEncoding, 0, sizeof( mEncoding ) );
hlipka 0:3fa97f2c0505 180 mStandalone = -1;
hlipka 0:3fa97f2c0505 181 }
hlipka 0:3fa97f2c0505 182
hlipka 0:3fa97f2c0505 183 SP_XmlDocDeclEvent :: ~SP_XmlDocDeclEvent()
hlipka 0:3fa97f2c0505 184 {
hlipka 0:3fa97f2c0505 185 }
hlipka 0:3fa97f2c0505 186
hlipka 0:3fa97f2c0505 187 void SP_XmlDocDeclEvent :: setVersion( const char * version )
hlipka 0:3fa97f2c0505 188 {
hlipka 0:3fa97f2c0505 189 strncpy( mVersion, version, sizeof( mVersion ) -1 );
hlipka 0:3fa97f2c0505 190 }
hlipka 0:3fa97f2c0505 191
hlipka 0:3fa97f2c0505 192 const char * SP_XmlDocDeclEvent :: getVersion() const
hlipka 0:3fa97f2c0505 193 {
hlipka 0:3fa97f2c0505 194 return mVersion;
hlipka 0:3fa97f2c0505 195 }
hlipka 0:3fa97f2c0505 196
hlipka 0:3fa97f2c0505 197 void SP_XmlDocDeclEvent :: setEncoding( const char * encoding )
hlipka 0:3fa97f2c0505 198 {
hlipka 0:3fa97f2c0505 199 strncpy( mEncoding, encoding, sizeof( mEncoding ) -1 );
hlipka 0:3fa97f2c0505 200 }
hlipka 0:3fa97f2c0505 201
hlipka 0:3fa97f2c0505 202 const char * SP_XmlDocDeclEvent :: getEncoding() const
hlipka 0:3fa97f2c0505 203 {
hlipka 0:3fa97f2c0505 204 return mEncoding;
hlipka 0:3fa97f2c0505 205 }
hlipka 0:3fa97f2c0505 206
hlipka 0:3fa97f2c0505 207 void SP_XmlDocDeclEvent :: setStandalone( int standalone )
hlipka 0:3fa97f2c0505 208 {
hlipka 0:3fa97f2c0505 209 mStandalone = standalone;
hlipka 0:3fa97f2c0505 210 }
hlipka 0:3fa97f2c0505 211
hlipka 0:3fa97f2c0505 212 int SP_XmlDocDeclEvent :: getStandalone() const
hlipka 0:3fa97f2c0505 213 {
hlipka 0:3fa97f2c0505 214 return mStandalone;
hlipka 0:3fa97f2c0505 215 }
hlipka 0:3fa97f2c0505 216
hlipka 0:3fa97f2c0505 217 //=========================================================
hlipka 0:3fa97f2c0505 218
hlipka 0:3fa97f2c0505 219 SP_XmlStartTagEvent :: SP_XmlStartTagEvent()
hlipka 0:3fa97f2c0505 220 : SP_XmlPullEvent( eStartTag )
hlipka 0:3fa97f2c0505 221 {
hlipka 0:3fa97f2c0505 222 mName = NULL;
hlipka 0:3fa97f2c0505 223 mAttrNameList = new SP_XmlArrayList();
hlipka 0:3fa97f2c0505 224 mAttrValueList = new SP_XmlArrayList();
hlipka 0:3fa97f2c0505 225 }
hlipka 0:3fa97f2c0505 226
hlipka 0:3fa97f2c0505 227 SP_XmlStartTagEvent :: ~SP_XmlStartTagEvent()
hlipka 0:3fa97f2c0505 228 {
hlipka 0:3fa97f2c0505 229 if( NULL != mName ) free( mName );
hlipka 0:3fa97f2c0505 230 mName = NULL;
hlipka 0:3fa97f2c0505 231
hlipka 0:3fa97f2c0505 232 int i = 0;
hlipka 0:3fa97f2c0505 233
hlipka 0:3fa97f2c0505 234 for( i = 0; i < mAttrNameList->getCount(); i++ ) {
hlipka 0:3fa97f2c0505 235 free( (char*)mAttrNameList->getItem( i ) );
hlipka 0:3fa97f2c0505 236 }
hlipka 0:3fa97f2c0505 237
hlipka 0:3fa97f2c0505 238 delete mAttrNameList;
hlipka 0:3fa97f2c0505 239 mAttrNameList = NULL;
hlipka 0:3fa97f2c0505 240
hlipka 0:3fa97f2c0505 241 for( i = 0; i < mAttrValueList->getCount(); i++ ) {
hlipka 0:3fa97f2c0505 242 free( (char*)mAttrValueList->getItem( i ) );
hlipka 0:3fa97f2c0505 243 }
hlipka 0:3fa97f2c0505 244 delete mAttrValueList;
hlipka 0:3fa97f2c0505 245 mAttrValueList = NULL;
hlipka 0:3fa97f2c0505 246 }
hlipka 0:3fa97f2c0505 247
hlipka 0:3fa97f2c0505 248 void SP_XmlStartTagEvent :: setName( const char * name )
hlipka 0:3fa97f2c0505 249 {
hlipka 0:3fa97f2c0505 250 if( NULL != name ) {
hlipka 0:3fa97f2c0505 251 if( NULL != mName ) free( mName );
hlipka 0:3fa97f2c0505 252 mName = strdup( name );
hlipka 0:3fa97f2c0505 253 }
hlipka 0:3fa97f2c0505 254 }
hlipka 0:3fa97f2c0505 255
hlipka 0:3fa97f2c0505 256 const char * SP_XmlStartTagEvent :: getName() const
hlipka 0:3fa97f2c0505 257 {
hlipka 0:3fa97f2c0505 258 return mName;
hlipka 0:3fa97f2c0505 259 }
hlipka 0:3fa97f2c0505 260
hlipka 0:3fa97f2c0505 261 void SP_XmlStartTagEvent :: addAttr( const char * name, const char * value )
hlipka 0:3fa97f2c0505 262 {
hlipka 0:3fa97f2c0505 263 if( NULL != name ) mAttrNameList->append( strdup( name ) );
hlipka 0:3fa97f2c0505 264 if( NULL != value ) mAttrValueList->append( strdup( value ) );
hlipka 0:3fa97f2c0505 265 }
hlipka 0:3fa97f2c0505 266
hlipka 0:3fa97f2c0505 267 const char * SP_XmlStartTagEvent :: getAttrValue( const char * name ) const
hlipka 0:3fa97f2c0505 268 {
hlipka 0:3fa97f2c0505 269 const char * ret = NULL;
hlipka 0:3fa97f2c0505 270
hlipka 0:3fa97f2c0505 271 for( int i = 0; i < mAttrNameList->getCount(); i++ ) {
hlipka 0:3fa97f2c0505 272 if( 0 == strcmp( name, (char*)mAttrNameList->getItem( i ) ) ) {
hlipka 0:3fa97f2c0505 273 ret = (char*)mAttrValueList->getItem( i );
hlipka 0:3fa97f2c0505 274 break;
hlipka 0:3fa97f2c0505 275 }
hlipka 0:3fa97f2c0505 276 }
hlipka 0:3fa97f2c0505 277
hlipka 0:3fa97f2c0505 278 return ret;
hlipka 0:3fa97f2c0505 279 }
hlipka 0:3fa97f2c0505 280
hlipka 0:3fa97f2c0505 281 int SP_XmlStartTagEvent :: getAttrCount() const
hlipka 0:3fa97f2c0505 282 {
hlipka 0:3fa97f2c0505 283 return mAttrNameList->getCount();
hlipka 0:3fa97f2c0505 284 }
hlipka 0:3fa97f2c0505 285
hlipka 0:3fa97f2c0505 286 const char * SP_XmlStartTagEvent :: getAttr( int index, const char ** value ) const
hlipka 0:3fa97f2c0505 287 {
hlipka 0:3fa97f2c0505 288 const char * name = (char*)mAttrNameList->getItem( index );
hlipka 0:3fa97f2c0505 289 if( NULL != name && NULL != value ) *value = (char*)mAttrValueList->getItem( index );
hlipka 0:3fa97f2c0505 290
hlipka 0:3fa97f2c0505 291 return name;
hlipka 0:3fa97f2c0505 292 }
hlipka 0:3fa97f2c0505 293
hlipka 0:3fa97f2c0505 294 void SP_XmlStartTagEvent :: removeAttr( const char * name )
hlipka 0:3fa97f2c0505 295 {
hlipka 0:3fa97f2c0505 296 int index = -1;
hlipka 0:3fa97f2c0505 297
hlipka 0:3fa97f2c0505 298 for( int i = 0; i < mAttrNameList->getCount(); i++ ) {
hlipka 0:3fa97f2c0505 299 if( 0 == strcmp( name, (char*)mAttrNameList->getItem( i ) ) ) {
hlipka 0:3fa97f2c0505 300 index = i;
hlipka 0:3fa97f2c0505 301 break;
hlipka 0:3fa97f2c0505 302 }
hlipka 0:3fa97f2c0505 303 }
hlipka 0:3fa97f2c0505 304
hlipka 0:3fa97f2c0505 305 if( index >= 0 ) {
hlipka 0:3fa97f2c0505 306 free( mAttrNameList->takeItem( index ) );
hlipka 0:3fa97f2c0505 307 free( mAttrValueList->takeItem( index ) );
hlipka 0:3fa97f2c0505 308 }
hlipka 0:3fa97f2c0505 309 }
hlipka 0:3fa97f2c0505 310
hlipka 0:3fa97f2c0505 311 //=========================================================
hlipka 0:3fa97f2c0505 312
hlipka 0:3fa97f2c0505 313 SP_XmlTextEvent :: SP_XmlTextEvent( int eventType )
hlipka 0:3fa97f2c0505 314 : SP_XmlPullEvent( eventType )
hlipka 0:3fa97f2c0505 315 {
hlipka 0:3fa97f2c0505 316 mText = NULL;
hlipka 0:3fa97f2c0505 317 }
hlipka 0:3fa97f2c0505 318
hlipka 0:3fa97f2c0505 319 SP_XmlTextEvent :: ~SP_XmlTextEvent()
hlipka 0:3fa97f2c0505 320 {
hlipka 0:3fa97f2c0505 321 if( NULL != mText ) free( mText );
hlipka 0:3fa97f2c0505 322 mText = NULL;
hlipka 0:3fa97f2c0505 323 }
hlipka 0:3fa97f2c0505 324
hlipka 0:3fa97f2c0505 325 void SP_XmlTextEvent :: setText( const char * text, int len )
hlipka 0:3fa97f2c0505 326 {
hlipka 0:3fa97f2c0505 327 if( NULL != text ) {
hlipka 0:3fa97f2c0505 328 if( NULL != mText ) free( mText );
hlipka 0:3fa97f2c0505 329 mText = (char*)malloc( len + 1 );
hlipka 0:3fa97f2c0505 330 memcpy( mText, text, len );
hlipka 0:3fa97f2c0505 331 mText[ len ] = '\0';
hlipka 0:3fa97f2c0505 332 }
hlipka 0:3fa97f2c0505 333 }
hlipka 0:3fa97f2c0505 334
hlipka 0:3fa97f2c0505 335 const char * SP_XmlTextEvent :: getText() const
hlipka 0:3fa97f2c0505 336 {
hlipka 0:3fa97f2c0505 337 return mText;
hlipka 0:3fa97f2c0505 338 }
hlipka 0:3fa97f2c0505 339
hlipka 0:3fa97f2c0505 340 //=========================================================
hlipka 0:3fa97f2c0505 341
hlipka 0:3fa97f2c0505 342 SP_XmlEndTagEvent :: SP_XmlEndTagEvent()
hlipka 0:3fa97f2c0505 343 : SP_XmlTextEvent( eEndTag )
hlipka 0:3fa97f2c0505 344 {
hlipka 0:3fa97f2c0505 345 }
hlipka 0:3fa97f2c0505 346
hlipka 0:3fa97f2c0505 347 SP_XmlEndTagEvent :: ~SP_XmlEndTagEvent()
hlipka 0:3fa97f2c0505 348 {
hlipka 0:3fa97f2c0505 349 }
hlipka 0:3fa97f2c0505 350
hlipka 0:3fa97f2c0505 351 //=========================================================
hlipka 0:3fa97f2c0505 352
hlipka 0:3fa97f2c0505 353 SP_XmlCDataEvent :: SP_XmlCDataEvent()
hlipka 0:3fa97f2c0505 354 : SP_XmlTextEvent( eCData )
hlipka 0:3fa97f2c0505 355 {
hlipka 0:3fa97f2c0505 356 }
hlipka 0:3fa97f2c0505 357
hlipka 0:3fa97f2c0505 358 SP_XmlCDataEvent :: ~SP_XmlCDataEvent()
hlipka 0:3fa97f2c0505 359 {
hlipka 0:3fa97f2c0505 360 }
hlipka 0:3fa97f2c0505 361
hlipka 0:3fa97f2c0505 362 //=========================================================
hlipka 0:3fa97f2c0505 363
hlipka 0:3fa97f2c0505 364 SP_XmlCommentEvent :: SP_XmlCommentEvent()
hlipka 0:3fa97f2c0505 365 : SP_XmlTextEvent( eComment )
hlipka 0:3fa97f2c0505 366 {
hlipka 0:3fa97f2c0505 367 }
hlipka 0:3fa97f2c0505 368
hlipka 0:3fa97f2c0505 369 SP_XmlCommentEvent :: ~SP_XmlCommentEvent()
hlipka 0:3fa97f2c0505 370 {
hlipka 0:3fa97f2c0505 371 }
hlipka 0:3fa97f2c0505 372