30 #ifndef CPL_MINIXML_H_INCLUDED
31 #define CPL_MINIXML_H_INCLUDED
127 const char *pszPath );
128 #if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS)
133 const char *pszPath ) {
141 const char *pszTarget );
142 #if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS)
147 const char *pszTarget ) {
156 const char *pszDefault );
159 const char *pszText );
177 const char *pszNameSpace,
183 const char *pszFilename );
187 #if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS)
196 struct CPLXMLTreeCloserDeleter
210 std::unique_ptr<
CPLXMLNode, CPLXMLTreeCloserDeleter>(data) {}
Manage a tree of XML nodes so that all nodes are freed when the instance goes out of scope.
Definition: cpl_minixml.h:206
CPLXMLNode * getDocumentElement()
Returns a pointer to the document (root) element.
Definition: cpl_minixml.cpp:2273
CPLXMLTreeCloser(CPLXMLNode *data)
Constructor.
Definition: cpl_minixml.h:209
void CPLAddXMLAttributeAndValue(CPLXMLNode *psParent, const char *pszName, const char *pszValue)
Create an attribute and text value.
Definition: cpl_minixml.cpp:1900
char * CPLSerializeXMLTree(const CPLXMLNode *psNode)
Convert tree into string document.
Definition: cpl_minixml.cpp:1261
void CPLStripXMLNamespace(CPLXMLNode *psRoot, const char *pszNameSpace, int bRecurse)
Strip indicated namespaces.
Definition: cpl_minixml.cpp:2071
void CPLCleanXMLElementName(char *)
Make string into safe XML token.
Definition: cpl_minixml.cpp:2250
int CPLSetXMLValue(CPLXMLNode *psRoot, const char *pszPath, const char *pszValue)
Set element value by path.
Definition: cpl_minixml.cpp:1979
CPLXMLNode * CPLCreateXMLNode(CPLXMLNode *poParent, CPLXMLNodeType eType, const char *pszText)
Create an document tree item.
Definition: cpl_minixml.cpp:1306
void CPLDestroyXMLNode(CPLXMLNode *)
Destroy a tree.
Definition: cpl_minixml.cpp:1414
CPLXMLNode * CPLSearchXMLNode(CPLXMLNode *poRoot, const char *pszTarget)
Search for a node in document.
Definition: cpl_minixml.cpp:1470
int CPLRemoveXMLChild(CPLXMLNode *psParent, CPLXMLNode *psChild)
Remove child node from parent.
Definition: cpl_minixml.cpp:1772
void CPLAddXMLSibling(CPLXMLNode *psOlderSibling, CPLXMLNode *psNewSibling)
Add new sibling.
Definition: cpl_minixml.cpp:1818
CPLXMLNode * CPLCloneXMLTree(const CPLXMLNode *psTree)
Copy tree.
Definition: cpl_minixml.cpp:1924
const char * CPLGetXMLValue(const CPLXMLNode *poRoot, const char *pszPath, const char *pszDefault)
Fetch element/attribute value.
Definition: cpl_minixml.cpp:1654
CPLXMLNode * CPLGetXMLNode(CPLXMLNode *poRoot, const char *pszPath)
Find node by path.
Definition: cpl_minixml.cpp:1559
void CPLAddXMLChild(CPLXMLNode *psParent, CPLXMLNode *psChild)
Add child node to parent.
Definition: cpl_minixml.cpp:1716
CPLXMLNode * CPLParseXMLString(const char *)
Parse an XML string into tree form.
Definition: cpl_minixml.cpp:615
CPLXMLNodeType
XML node type.
Definition: cpl_minixml.h:45
@ CXT_Literal
Definition: cpl_minixml.h:50
@ CXT_Element
Definition: cpl_minixml.h:46
@ CXT_Comment
Definition: cpl_minixml.h:49
@ CXT_Text
Definition: cpl_minixml.h:47
@ CXT_Attribute
Definition: cpl_minixml.h:48
CPLXMLNode * CPLParseXMLFile(const char *pszFilename)
Parse XML file into tree.
Definition: cpl_minixml.cpp:2141
int CPLSerializeXMLTreeToFile(const CPLXMLNode *psTree, const char *pszFilename)
Write document tree to a file.
Definition: cpl_minixml.cpp:2179
CPLXMLNode * CPLCreateXMLElementAndValue(CPLXMLNode *psParent, const char *pszName, const char *pszValue)
Create an element and text value.
Definition: cpl_minixml.cpp:1861
Core portability definitions for CPL.
#define CPL_C_END
Macro to end a block of C symbols.
Definition: cpl_port.h:339
#define CPL_C_START
Macro to start a block of C symbols.
Definition: cpl_port.h:337
Document node structure.
Definition: cpl_minixml.h:70
struct CPLXMLNode * psChild
Child node.
Definition: cpl_minixml.h:121
CPLXMLNodeType eType
Node type.
Definition: cpl_minixml.h:77
struct CPLXMLNode * psNext
Next sibling.
Definition: cpl_minixml.h:109
char * pszValue
Node value.
Definition: cpl_minixml.h:100