Advertisement
Guest User

Untitled

a guest
Aug 29th, 2014
256
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.12 KB | None | 0 0
  1. void test_DOM_buffer_search(void)
  2. {
  3.     SAX_Callbacks sax;
  4.     int i;
  5.     XMLDoc doc;
  6.     SXML_CHAR* p = sx_strdup(C2SX("<xml><r><socket><id>1223892389</id><pID>3</pID><price>0.32</price><maxcr>10</maxcr></socket></r></xml>"));
  7.  
  8.     SAX_Callbacks_init(&sax);
  9.     XMLDoc_init(&doc);
  10.     sax.start_doc = DS;
  11.     sax.start_node = NS;
  12.     sax.end_node = NE;
  13.     sax.new_text = NT;
  14.     sax.end_doc = DE;
  15.     sax.on_error = ER;
  16.  
  17.     XMLSearch search;
  18.     XMLSearch* xmlSearchPtr;
  19.     xmlSearchPtr = &search;
  20.     XMLSearch_init(xmlSearchPtr);
  21.  
  22.     printf("Reading %d nodes:\n", N);
  23.  
  24.     for (i = 0; i < N; i++) {
  25.         XMLDoc_parse_buffer_DOM(p, NULL, &doc);
  26.         if (i % 1000 == 0) printf(".\n");
  27.     }
  28.  
  29.     sx_printf("Start search\n");
  30.  
  31.     XMLNode* nodeD;
  32.     nodeD = XMLDoc_root(&doc);
  33.  
  34.     XMLSearch_search_set_text(&search, C2SX("1223892389"));
  35.  
  36.     XMLNode_print(nodeD, stdout, NULL, NULL, false, 0, 0);
  37.  
  38.     while ((nodeD = XMLSearch_next(nodeD, &search)) != NULL) {
  39.         printf("Found match: ");
  40.         XMLNode_print(nodeD, stdout, NULL, NULL, false, 0, 0);
  41.         printf("\n");
  42.     }
  43.     printf("End search\n");
  44.  
  45.     free(p);
  46.     printf("\nFreeing...\n", N);
  47.  
  48.     XMLDoc_free(&doc);
  49.     printf("\nDone!\n", N);
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement