00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #ifndef _CPL_MINIXML_H_INCLUDED
00031 #define _CPL_MINIXML_H_INCLUDED
00032
00033 #include "cpl_port.h"
00034
00041 CPL_C_START
00042
00043 typedef enum
00044 { CXT_Element = 0, CXT_Text = 1, CXT_Attribute = 2, CXT_Comment = 3, CXT_Literal = 4
00050 } CPLXMLNodeType;
00051
00065 typedef struct CPLXMLNode
00066 {
00073 CPLXMLNodeType eType;
00074
00096 char *pszValue;
00097
00105 struct CPLXMLNode *psNext;
00106
00117 struct CPLXMLNode *psChild;
00118 } CPLXMLNode;
00119
00120
00121 CPLXMLNode CPL_DLL *CPLParseXMLString( const char * );
00122 void CPL_DLL CPLDestroyXMLNode( CPLXMLNode * );
00123 CPLXMLNode CPL_DLL *CPLGetXMLNode( CPLXMLNode *poRoot,
00124 const char *pszPath );
00125 CPLXMLNode CPL_DLL *CPLSearchXMLNode( CPLXMLNode *poRoot,
00126 const char *pszTarget );
00127 const char CPL_DLL *CPLGetXMLValue( CPLXMLNode *poRoot,
00128 const char *pszPath,
00129 const char *pszDefault );
00130 CPLXMLNode CPL_DLL *CPLCreateXMLNode( CPLXMLNode *poParent,
00131 CPLXMLNodeType eType,
00132 const char *pszText );
00133 char CPL_DLL *CPLSerializeXMLTree( CPLXMLNode *psNode );
00134 void CPL_DLL CPLAddXMLChild( CPLXMLNode *psParent,
00135 CPLXMLNode *psChild );
00136 int CPL_DLL CPLRemoveXMLChild( CPLXMLNode *psParent,
00137 CPLXMLNode *psChild );
00138 void CPL_DLL CPLAddXMLSibling( CPLXMLNode *psOlderSibling,
00139 CPLXMLNode *psNewSibling );
00140 CPLXMLNode CPL_DLL *CPLCreateXMLElementAndValue( CPLXMLNode *psParent,
00141 const char *pszName,
00142 const char *pszValue );
00143 CPLXMLNode CPL_DLL *CPLCloneXMLTree( CPLXMLNode *psTree );
00144 int CPL_DLL CPLSetXMLValue( CPLXMLNode *psRoot, const char *pszPath,
00145 const char *pszValue );
00146 void CPL_DLL CPLStripXMLNamespace( CPLXMLNode *psRoot,
00147 const char *pszNameSpace,
00148 int bRecurse );
00149 void CPL_DLL CPLCleanXMLElementName( char * );
00150
00151 CPLXMLNode CPL_DLL *CPLParseXMLFile( const char *pszFilename );
00152 int CPL_DLL CPLSerializeXMLTreeToFile( CPLXMLNode *psTree,
00153 const char *pszFilename );
00154
00155 CPL_C_END
00156
00157 #endif