xmltest.cpp 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. #include "tinyxml2.h"
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #if defined( WIN32 )
  5. #include <crtdbg.h>
  6. _CrtMemState startMemState;
  7. _CrtMemState endMemState;
  8. #endif
  9. using namespace tinyxml2;
  10. int main( int argc, const char* argv )
  11. {
  12. #if defined( WIN32 )
  13. _CrtMemCheckpoint( &startMemState );
  14. #endif
  15. #if 0
  16. {
  17. static const char* test = "<!--hello world\n"
  18. " line 2\r"
  19. " line 3\r\n"
  20. " line 4\n\r"
  21. " line 5\r-->";
  22. XMLDocument doc;
  23. doc.Parse( test );
  24. doc.Print();
  25. }
  26. #endif
  27. #if 0
  28. {
  29. static const char* test[] = { "<element />",
  30. "<element></element>",
  31. "<element><subelement/></element>",
  32. "<element><subelement></subelement></element>",
  33. "<element><subelement><subsub/></subelement></element>",
  34. "<!--comment beside elements--><element><subelement></subelement></element>",
  35. "<!--comment beside elements, this time with spaces--> \n <element> <subelement> \n </subelement> </element>",
  36. "<element attrib1='foo' attrib2=\"bar\" ></element>",
  37. "<element attrib1='foo' attrib2=\"bar\" ><subelement attrib3='yeehaa' /></element>",
  38. "<element>Text inside element.</element>",
  39. "<element><b></b></element>",
  40. "<element>Text inside and <b>bolded</b> in the element.</element>",
  41. "<outer><element>Text inside and <b>bolded</b> in the element.</element></outer>",
  42. "<element>This &amp; That.</element>",
  43. "<element attrib='This&lt;That' />",
  44. 0
  45. };
  46. for( int i=0; test[i]; ++i ) {
  47. XMLDocument doc;
  48. doc.Parse( test[i] );
  49. doc.Print();
  50. printf( "----------------------------------------------\n" );
  51. }
  52. }
  53. #endif
  54. #if 0
  55. {
  56. static const char* test = "<element>Text before.</element>";
  57. XMLDocument doc;
  58. doc.Parse( test );
  59. XMLElement* root = doc.FirstChildElement();
  60. XMLElement* newElement = doc.NewElement( "Subelement" );
  61. root->InsertEndChild( newElement );
  62. doc.Print();
  63. }
  64. {
  65. XMLDocument* doc = new XMLDocument();
  66. static const char* test = "<element><sub/></element>";
  67. doc->Parse( test );
  68. delete doc;
  69. }
  70. #endif
  71. {
  72. XMLDocument* doc = new XMLDocument();
  73. doc->InsertEndChild( doc->NewElement( "element" ) );
  74. doc->Print();
  75. delete doc;
  76. }
  77. #if defined( WIN32 )
  78. _CrtMemCheckpoint( &endMemState );
  79. //_CrtMemDumpStatistics( &endMemState );
  80. _CrtMemState diffMemState;
  81. _CrtMemDifference( &diffMemState, &startMemState, &endMemState );
  82. _CrtMemDumpStatistics( &diffMemState );
  83. #endif
  84. return 0;
  85. }