Alexander Steiger / tinyxml
Committer:
steiger
Date:
Sun Nov 21 00:49:17 2010 +0000
Revision:
0:7c97dcef700c

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
steiger 0:7c97dcef700c 1
steiger 0:7c97dcef700c 2 // a utility function defining a very simple method to indent a line of text
steiger 0:7c97dcef700c 3 const char * getIndent( unsigned int numIndents )
steiger 0:7c97dcef700c 4 {
steiger 0:7c97dcef700c 5 static const char * pINDENT = " + ";
steiger 0:7c97dcef700c 6 static const unsigned int LENGTH = strlen( pINDENT );
steiger 0:7c97dcef700c 7
steiger 0:7c97dcef700c 8 if ( numIndents > LENGTH ) numIndents = LENGTH;
steiger 0:7c97dcef700c 9
steiger 0:7c97dcef700c 10 return &pINDENT[ LENGTH-numIndents ];
steiger 0:7c97dcef700c 11 }
steiger 0:7c97dcef700c 12
steiger 0:7c97dcef700c 13 void dump_to_stdout( TiXmlNode * pParent, unsigned int indent = 0 )
steiger 0:7c97dcef700c 14 {
steiger 0:7c97dcef700c 15 if ( !pParent ) return;
steiger 0:7c97dcef700c 16
steiger 0:7c97dcef700c 17 TiXmlText *pText;
steiger 0:7c97dcef700c 18 int t = pParent->Type();
steiger 0:7c97dcef700c 19 printf( "%s", getIndent( indent));
steiger 0:7c97dcef700c 20
steiger 0:7c97dcef700c 21 switch ( t )
steiger 0:7c97dcef700c 22 {
steiger 0:7c97dcef700c 23 case TiXmlNode::TINYXML_DOCUMENT:
steiger 0:7c97dcef700c 24 printf( "Document" );
steiger 0:7c97dcef700c 25 break;
steiger 0:7c97dcef700c 26
steiger 0:7c97dcef700c 27 case TiXmlNode::TINYXML_ELEMENT:
steiger 0:7c97dcef700c 28 printf( "Element \"%s\"", pParent->Value() );
steiger 0:7c97dcef700c 29 break;
steiger 0:7c97dcef700c 30
steiger 0:7c97dcef700c 31 case TiXmlNode::TINYXML_COMMENT:
steiger 0:7c97dcef700c 32 printf( "Comment: \"%s\"", pParent->Value());
steiger 0:7c97dcef700c 33 break;
steiger 0:7c97dcef700c 34
steiger 0:7c97dcef700c 35 case TiXmlNode::TINYXML_UNKNOWN:
steiger 0:7c97dcef700c 36 printf( "Unknown" );
steiger 0:7c97dcef700c 37 break;
steiger 0:7c97dcef700c 38
steiger 0:7c97dcef700c 39 case TiXmlNode::TINYXML_TEXT:
steiger 0:7c97dcef700c 40 pText = pParent->ToText();
steiger 0:7c97dcef700c 41 printf( "Text: [%s]", pText->Value() );
steiger 0:7c97dcef700c 42 break;
steiger 0:7c97dcef700c 43
steiger 0:7c97dcef700c 44 case TiXmlNode::TINYXML_DECLARATION:
steiger 0:7c97dcef700c 45 printf( "Declaration" );
steiger 0:7c97dcef700c 46 break;
steiger 0:7c97dcef700c 47 default:
steiger 0:7c97dcef700c 48 break;
steiger 0:7c97dcef700c 49 }
steiger 0:7c97dcef700c 50 printf( "\n" );
steiger 0:7c97dcef700c 51
steiger 0:7c97dcef700c 52 TiXmlNode * pChild;
steiger 0:7c97dcef700c 53
steiger 0:7c97dcef700c 54 for ( pChild = pParent->FirstChild(); pChild != 0; pChild = pChild->NextSibling())
steiger 0:7c97dcef700c 55 {
steiger 0:7c97dcef700c 56 dump_to_stdout( pChild, indent+2 );
steiger 0:7c97dcef700c 57 }
steiger 0:7c97dcef700c 58 }