13#ifndef CPL_MINIXML_H_INCLUDED
14#define CPL_MINIXML_H_INCLUDED
108CPLXMLNode CPL_DLL *CPLParseXMLString(
const char *);
111#if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS)
119 CPLGetXMLNode(
const_cast<CPLXMLNode *
>(poRoot), pszPath));
125#if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS)
130 const char *pszTarget)
133 CPLSearchXMLNode(
const_cast<CPLXMLNode *
>(poRoot), pszTarget));
138const char CPL_DLL *CPLGetXMLValue(
const CPLXMLNode *poRoot,
139 const char *pszPath,
const char *pszDefault);
141 const char *pszText);
142char CPL_DLL *CPLSerializeXMLTree(
const CPLXMLNode *psNode);
145void CPL_DLL CPLAddXMLSibling(
CPLXMLNode *psOlderSibling,
150void CPL_DLL CPLAddXMLAttributeAndValue(
CPLXMLNode *psParent,
154int CPL_DLL CPLSetXMLValue(
CPLXMLNode *psRoot,
const char *pszPath,
156void CPL_DLL CPLStripXMLNamespace(
CPLXMLNode *psRoot,
const char *pszNameSpace,
158void CPL_DLL CPLCleanXMLElementName(
char *);
160CPLXMLNode CPL_DLL *CPLParseXMLFile(
const char *pszFilename);
161int CPL_DLL CPLSerializeXMLTreeToFile(
const CPLXMLNode *psTree,
162 const char *pszFilename);
164size_t CPL_DLL CPLXMLNodeGetRAMUsageEstimate(
const CPLXMLNode *psNode);
168#if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS)
177 struct CPL_DLL CPLXMLTreeCloserDeleter
179 void operator()(CPLXMLNode *psNode)
const
181 CPLDestroyXMLNode(psNode);
192 :
public std::unique_ptr<CPLXMLNode, CPLXMLTreeCloserDeleter>
197 : std::unique_ptr<
CPLXMLNode, CPLXMLTreeCloserDeleter>(data)
CPLXMLTreeCloser(CPLXMLNode *data)
Constructor.
Definition cpl_minixml.h:196
CPLXMLNodeType
XML node type.
Definition cpl_minixml.h:28
@ CXT_Literal
Definition cpl_minixml.h:33
@ CXT_Element
Definition cpl_minixml.h:29
@ CXT_Comment
Definition cpl_minixml.h:32
@ CXT_Text
Definition cpl_minixml.h:30
@ CXT_Attribute
Definition cpl_minixml.h:31
Core portability definitions for CPL.
#define CPL_C_END
Macro to end a block of C symbols.
Definition cpl_port.h:279
#define CPL_C_START
Macro to start a block of C symbols.
Definition cpl_port.h:275
Document node structure.
Definition cpl_minixml.h:54
struct CPLXMLNode * psChild
Child node.
Definition cpl_minixml.h:105
CPLXMLNodeType eType
Node type.
Definition cpl_minixml.h:61
struct CPLXMLNode * psNext
Next sibling.
Definition cpl_minixml.h:93
char * pszValue
Node value.
Definition cpl_minixml.h:84