From 80b4895ce5848e7a55185f0c90d4357aeb3a75fb Mon Sep 17 00:00:00 2001 From: James Clark Date: Sun, 21 Jun 1998 08:10:47 +0000 Subject: [PATCH] *** empty log message *** --- expat/demo/demo.c | 46 +++++++++++++++++++++++++++++++++++++++++ expat/demo/makedemo.bat | 5 +++++ 2 files changed, 51 insertions(+) create mode 100755 expat/demo/demo.c create mode 100755 expat/demo/makedemo.bat diff --git a/expat/demo/demo.c b/expat/demo/demo.c new file mode 100755 index 00000000..42745c4c --- /dev/null +++ b/expat/demo/demo.c @@ -0,0 +1,46 @@ +/* This is simple demonstration of how to use expat. This program +reads an XML document from standard input and writes a line with the +name of each element to standard output indenting child elements by +one tab stop more than their parent element. */ + +#include +#include "xmlparse.h" + +void startElement(void *userData, const char *name, const char **atts) +{ + int i; + int *depthPtr = userData; + for (i = 0; i < *depthPtr; i++) + putchar('\t'); + puts(name); + *depthPtr += 1; +} + +void endElement(void *userData, const char *name) +{ + int *depthPtr = userData; + *depthPtr -= 1; +} + +int main() +{ + char buf[BUFSIZ]; + XML_Parser parser = XML_ParserCreate(NULL); + int done; + int depth = 0; + XML_SetUserData(parser, &depth); + XML_SetElementHandler(parser, startElement, endElement); + do { + size_t len = fread(buf, 1, sizeof(buf), stdin); + done = len < sizeof(buf); + if (!XML_Parse(parser, buf, len, done)) { + fprintf(stderr, + "%s at line %d\n", + XML_ErrorString(XML_GetErrorCode(parser)), + XML_GetCurrentLineNumber(parser)); + return 1; + } + } while (!done); + XML_ParserFree(parser); + return 0; +} diff --git a/expat/demo/makedemo.bat b/expat/demo/makedemo.bat new file mode 100755 index 00000000..4e909eb9 --- /dev/null +++ b/expat/demo/makedemo.bat @@ -0,0 +1,5 @@ +@echo off +set LIB=..\xmlparse\Release;..\xmltok\Release;..\lib;%LIB% +set INCLUDE=..\xmlparse;..\xmltok;%INCLUDE% +set CL=/nologo /DXMLTOKAPI=__declspec(dllimport) /DXMLPARSEAPI=__declspec(dllimport) xmlparse.lib xmltok.lib +cl /Fe..\bin\demo demo.c