1/* $Id: minixml.h,v 1.6 2006/11/30 11:47:21 nanard Exp $ */
2/* minimal xml parser
3 *
4 * Project : miniupnp
5 * Website : http://miniupnp.free.fr/
6 * Author : Thomas Bernard
7 * Copyright (c) 2005 Thomas Bernard
8 * This software is subject to the conditions detailed in the
9 * LICENCE file provided in this distribution.
10 * */
11#ifndef MINIXML_H_INCLUDED
12#define MINIXML_H_INCLUDED
13#define IS_WHITE_SPACE(c) ((c)==' ' || (c)=='\t' || (c)=='\r' || (c)=='\n')
14
15/* if a callback function pointer is set to NULL,
16 * the function is not called */
17struct xmlparser {
18 const char *xmlstart;
19 const char *xmlend;
20 const char *xml; /* pointer to current character */
21 int xmlsize;
22 void * data;
23 void (*starteltfunc) (void *, const char *, int);
24 void (*endeltfunc) (void *, const char *, int);
25 void (*datafunc) (void *, const char *, int);
26 void (*attfunc) (void *, const char *, int, const char *, int);
27};
28
29/* parsexml()
30 * the xmlparser structure must be initialized before the call
31 * the following structure members have to be initialized :
32 * xmlstart, xmlsize, data, *func
33 * xml is for internal usage, xmlend is computed automatically */
34void parsexml(struct xmlparser *);
35
36#endif
37
38