/* * xml.h * * Copyright (c) Chris Putnam 2004-2017 * * Source code released under the GPL version 2 * */ #ifndef XML_H #define XML_H #include "slist.h" #include "str.h" typedef struct xml_attrib { slist attrib; slist value; } xml_attrib; typedef struct xml { str *tag; str *value; xml_attrib *a; struct xml *down; struct xml *next; } xml; void xml_init ( xml *x ); void xml_free ( xml *x ); str * xml_getattrib ( xml *node, char *attrib ); char * xml_findstart ( char *buffer, char *tag ); char * xml_findend ( char *buffer, char *tag ); int xml_tagexact ( xml *node, char *s ); int xml_tag_attrib ( xml *node, char *s, char *attrib, char *value ); int xml_hasattrib ( xml *node, char *attrib, char *value ); char * xml_tree ( char *p, xml *onode ); int xml_hasvalue ( xml *node ); char * xml_value ( xml *node ); char * xml_tag ( xml *node ); int xml_tagwithvalue( xml *node, char *tag ); extern char * xml_pns; /* global Namespace */ #endif