Main Page   Modules   Data Structures   File List   Data Fields   Examples  

DomNode.h

00001 /*
00002  * libsgml -- SGML state machine parsing library.
00003  *                                                                  
00004  * Copyright (c) 2002 Uninformed Research (http://www.uninformed.org)
00005  * All rights reserved.
00006  *
00007  * skape
00008  * mmiller@hick.org
00009  */
00018 #ifndef _LIBSGML_DOMNODE_H
00019 #define _LIBSGML_DOMNODE_H
00020 
00021 #include <stdio.h>
00022 
00023 #define DOM_NDOE_TYPE_INVALID   0x0000
00024 #define DOM_NODE_TYPE_DOCUMENT  0x0001
00025 #define DOM_NODE_TYPE_ELEMENT   0x0002
00026 #define DOM_NODE_TYPE_ATTRIBUTE 0x0003
00027 #define DOM_NODE_TYPE_TEXT      0x0004
00028 #define DOM_NODE_TYPE_COMMENT   0x0005
00029 
00030 struct _dom_node_list;
00031 
00035 typedef struct _dom_node {
00036 
00053         unsigned long    type;
00054 
00058         char             *name;
00062         char             *value;
00063 
00067         struct _dom_node *attributes;
00068 
00072         struct _dom_node *parent;
00073 
00077         struct _dom_node *firstChild;
00081         struct _dom_node *lastChild;
00082 
00086         struct _dom_node *prevSibling;
00090         struct _dom_node *nextSibling;
00091 
00095         unsigned char    autoclose;
00099         unsigned char    deferredClosure;
00103         unsigned char    escapeTags;
00104 
00105 } DOM_NODE;
00106 
00130 DOM_NODE *domNodeNew(unsigned long type, const char *name, const char *value);
00136 void domNodeDestroySpecific(DOM_NODE *node);
00142 void domNodeDestroy(DOM_NODE *node);
00143 
00150 void domNodeAppendChild(DOM_NODE *parent, DOM_NODE *child);
00157 void domNodeAppendSibling(DOM_NODE *node, DOM_NODE *sibling);
00164 void domNodeRemoveChild(DOM_NODE *parent, DOM_NODE *child);
00165 
00172 DOM_NODE *domNodeGetFirstChild(DOM_NODE *node);
00179 DOM_NODE *domNodeGetPreviousSibling(DOM_NODE *node);
00186 DOM_NODE *domNodeGetNextSibling(DOM_NODE *node);
00187 
00194 void domNodeSetName(DOM_NODE *node, const char *name);
00201 const char *domNodeGetName(DOM_NODE *node);
00202 
00209 void domNodeSetValue(DOM_NODE *node, const char *value);
00216 const char *domNodeGetValue(DOM_NODE *node);
00217 
00225 DOM_NODE *domNodeFindNodeByName(DOM_NODE *node, const char *name);
00233 struct _dom_node_list *domNodeFindNodesByName(DOM_NODE *node, const char *name);
00234 void domNodeFindNodesByName_r(struct _dom_node_list *nodeList, DOM_NODE *node, const char *name);
00235 
00242 void domNodeSerializeToFile(DOM_NODE *node, const char *fileName);
00249 void domNodeSerializeToFd(DOM_NODE *node, FILE *fd);
00257 unsigned long domNodeSerializeToString(DOM_NODE *node, char **string);
00258 
00259 void domNodeSerializeToString_r(DOM_NODE *node, char **string, unsigned long *stringLength);
00260 
00265 #endif

Generated on Sun Dec 1 04:59:01 2002 for libsgml by doxygen1.3-rc1