13#ifndef CPL_MINIXML_H_INCLUDED
14#define CPL_MINIXML_H_INCLUDED
111#if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS)
125#if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS)
130 const char *pszTarget)
139 const char *pszPath,
const char *pszDefault);
141 const char *pszText);
162 const char *pszFilename);
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
CPLXMLNode * CPLSearchXMLNode(CPLXMLNode *poRoot, const char *pszTarget)
Search for a node in document.
Definition cpl_minixml.cpp:1457
void CPLAddXMLAttributeAndValue(CPLXMLNode *psParent, const char *pszName, const char *pszValue)
Create an attribute and text value.
Definition cpl_minixml.cpp:1885
CPLXMLNode * CPLParseXMLString(const char *)
Parse an XML string into tree form.
Definition cpl_minixml.cpp:595
CPLXMLNode * CPLCreateXMLElementAndValue(CPLXMLNode *psParent, const char *pszName, const char *pszValue)
Create an element and text value.
Definition cpl_minixml.cpp:1847
CPLXMLNode * CPLGetXMLNode(CPLXMLNode *poRoot, const char *pszPath)
Find node by path.
Definition cpl_minixml.cpp:1547
void CPLStripXMLNamespace(CPLXMLNode *psRoot, const char *pszNameSpace, int bRecurse)
Strip indicated namespaces.
Definition cpl_minixml.cpp:2054
void CPLCleanXMLElementName(char *)
Make string into safe XML token.
Definition cpl_minixml.cpp:2228
int CPLSetXMLValue(CPLXMLNode *psRoot, const char *pszPath, const char *pszValue)
Set element value by path.
Definition cpl_minixml.cpp:1963
CPLXMLNode * CPLCreateXMLNode(CPLXMLNode *poParent, CPLXMLNodeType eType, const char *pszText)
Create an document tree item.
Definition cpl_minixml.cpp:1295
void CPLDestroyXMLNode(CPLXMLNode *)
Destroy a tree.
Definition cpl_minixml.cpp:1401
const char * CPLGetXMLValue(const CPLXMLNode *poRoot, const char *pszPath, const char *pszDefault)
Fetch element/attribute value.
Definition cpl_minixml.cpp:1645
int CPLRemoveXMLChild(CPLXMLNode *psParent, CPLXMLNode *psChild)
Remove child node from parent.
Definition cpl_minixml.cpp:1760
void CPLAddXMLSibling(CPLXMLNode *psOlderSibling, CPLXMLNode *psNewSibling)
Add new sibling.
Definition cpl_minixml.cpp:1804
CPLXMLNode * CPLParseXMLFile(const char *pszFilename)
Parse XML file into tree.
Definition cpl_minixml.cpp:2122
CPLXMLNode * CPLCloneXMLTree(const CPLXMLNode *psTree)
Copy tree.
Definition cpl_minixml.cpp:1908
void CPLAddXMLChild(CPLXMLNode *psParent, CPLXMLNode *psChild)
Add child node to parent.
Definition cpl_minixml.cpp:1706
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
int CPLSerializeXMLTreeToFile(const CPLXMLNode *psTree, const char *pszFilename)
Write document tree to a file.
Definition cpl_minixml.cpp:2160
size_t CPLXMLNodeGetRAMUsageEstimate(const CPLXMLNode *psNode)
Return a conservative estimate of the RAM usage of this node, its children and siblings.
Definition cpl_minixml.cpp:2278
char * CPLSerializeXMLTree(const CPLXMLNode *psNode)
Convert tree into string document.
Definition cpl_minixml.cpp:1251
Core portability definitions for CPL.
#define CPL_C_END
Macro to end a block of C symbols.
Definition cpl_port.h:289
#define CPL_C_START
Macro to start a block of C symbols.
Definition cpl_port.h:285
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