]>
git.saurik.com Git - wxWidgets.git/blob - src/expat/examples/outline.c
   1 /***************************************************************** 
   4  * Copyright 1999, Clark Cooper 
   7  * This program is free software; you can redistribute it and/or 
   8  * modify it under the terms of the license contained in the 
   9  * COPYING file that comes with the expat distribution. 
  11  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 
  12  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 
  13  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 
  14  * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 
  15  * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 
  16  * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 
  17  * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 
  19  * Read an XML document from standard input and print an element 
  20  * outline on standard output. 
  34 start(void *data
, const char *el
, const char **attr
) 
  38   for (i 
= 0; i 
< Depth
; i
++) 
  43   for (i 
= 0; attr
[i
]; i 
+= 2) { 
  44     printf(" %s='%s'", attr
[i
], attr
[i 
+ 1]); 
  52 end(void *data
, const char *el
) 
  58 main(int argc
, char *argv
[]) 
  60   XML_Parser p 
= XML_ParserCreate(NULL
); 
  62     fprintf(stderr
, "Couldn't allocate memory for parser\n"); 
  66   XML_SetElementHandler(p
, start
, end
); 
  72     len 
= fread(Buff
, 1, BUFFSIZE
, stdin
); 
  74       fprintf(stderr
, "Read error\n"); 
  79     if (XML_Parse(p
, Buff
, len
, done
) == XML_STATUS_ERROR
) { 
  80       fprintf(stderr
, "Parse error at line %d:\n%s\n", 
  81               XML_GetCurrentLineNumber(p
), 
  82               XML_ErrorString(XML_GetErrorCode(p
)));