+++ /dev/null
-\r
-\r
-#include "XMLTree.h"\r
-\r
-\r
-void traverseXML(XMLTree *X, treeNode x)\r
- {\r
- int j;\r
- int d = X->NumChildren(x);\r
- treeNode y;\r
- \r
- y = X->FirstChild(x);\r
- for (j = 0; j < d; j++) {\r
- traverseXML(X, y);\r
- y = X->NextSibling(y);\r
- } \r
- }\r
-\r
-\r
-int main() \r
- {\r
- XMLTree *X, *Y;\r
- int rr, n, i;\r
- unsigned char openTag[]="A", closeTag[]="/A", filename[]="testXML", text[]="Hello World";\r
- treeNode x;\r
-\r
- n = 99999;\r
-\r
- X = new XMLTree();\r
-\r
- \r
-\r
- X->OpenDocument(false, 32);\r
-\r
- rr = 0;\r
- for (i = 1; i < n; i++) {\r
- //if (rand() % 100 < r) setbit(B,i,1);\r
- if (rr > (n-i)) {\r
- printf("???? rr=%d n=%d i=%d\n",rr,n,i);\r
- //exit(1);\r
- } else if (rr >= (n-i)) {\r
- X->NewClosingTag(closeTag);\r
- if ((1+(int) (2.0*rand()/(RAND_MAX+1.0))) == 1)\r
- X->NewEmptyText();\r
- else X->NewText(text);\r
- rr--;\r
- } \r
- else {\r
- if (rand() % (rr+1) < (rr+1)/2 || (rr<=1)) {\r
- X->NewOpenTag(openTag);\r
- if ((1+(int) (2.0*rand()/(RAND_MAX+1.0))) == 1)\r
- X->NewEmptyText();\r
- else X->NewText(text);\r
- rr++;\r
- } \r
- else {\r
- X->NewClosingTag(closeTag);\r
- if ((1+(int) (2.0*rand()/(RAND_MAX+1.0))) <= 1)\r
- X->NewEmptyText();\r
- else X->NewText(text);\r
- rr--;\r
- }\r
- }\r
- }\r
- \r
- X->CloseDocument();\r
- \r
- for (i=0; i <= (n+1)/2; i++) \r
- X->TextXMLId(i);\r
- \r
- x = X->Root();\r
- \r
- traverseXML(X, x); \r
-\r
- X->Save(filename);\r
-\r
- //delete X;\r
-\r
-// X = XMLTree::Load(filename, 32);\r
- \r
- // x = X->Root();\r
- \r
- //traverseXML(X, x); \r
- \r
- }\r
-\r