GDAL
cpl_minixml.h
Go to the documentation of this file.
1 /**********************************************************************
2  * $Id: cpl_minixml.h 25119 2012-10-13 22:38:43Z rouault $
3  *
4  * Project: CPL - Common Portability Library
5  * Purpose: Declarations for MiniXML Handler.
6  * Author: Frank Warmerdam, warmerdam@pobox.com
7  *
8  **********************************************************************
9  * Copyright (c) 2001, Frank Warmerdam
10  *
11  * Permission is hereby granted, free of charge, to any person obtaining a
12  * copy of this software and associated documentation files (the "Software"),
13  * to deal in the Software without restriction, including without limitation
14  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
15  * and/or sell copies of the Software, and to permit persons to whom the
16  * Software is furnished to do so, subject to the following conditions:
17  *
18  * The above copyright notice and this permission notice shall be included
19  * in all copies or substantial portions of the Software.
20  *
21  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
24  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
25  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
26  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
27  * DEALINGS IN THE SOFTWARE.
28  ****************************************************************************/
29 
30 #ifndef _CPL_MINIXML_H_INCLUDED
31 #define _CPL_MINIXML_H_INCLUDED
32 
33 #include "cpl_port.h"
34 
41 CPL_C_START
42 
43 typedef enum
44 { CXT_Element = 0, CXT_Text = 1, CXT_Attribute = 2, CXT_Comment = 3, CXT_Literal = 4
51 
65 typedef struct CPLXMLNode
66 {
74 
96  char *pszValue;
97 
105  struct CPLXMLNode *psNext;
106 
117  struct CPLXMLNode *psChild;
118 } CPLXMLNode;
119 
120 
121 CPLXMLNode CPL_DLL *CPLParseXMLString( const char * );
122 void CPL_DLL CPLDestroyXMLNode( CPLXMLNode * );
123 CPLXMLNode CPL_DLL *CPLGetXMLNode( CPLXMLNode *poRoot,
124  const char *pszPath );
125 CPLXMLNode CPL_DLL *CPLSearchXMLNode( CPLXMLNode *poRoot,
126  const char *pszTarget );
127 const char CPL_DLL *CPLGetXMLValue( CPLXMLNode *poRoot,
128  const char *pszPath,
129  const char *pszDefault );
130 CPLXMLNode CPL_DLL *CPLCreateXMLNode( CPLXMLNode *poParent,
132  const char *pszText );
133 char CPL_DLL *CPLSerializeXMLTree( const CPLXMLNode *psNode );
134 void CPL_DLL CPLAddXMLChild( CPLXMLNode *psParent,
135  CPLXMLNode *psChild );
136 int CPL_DLL CPLRemoveXMLChild( CPLXMLNode *psParent,
137  CPLXMLNode *psChild );
138 void CPL_DLL CPLAddXMLSibling( CPLXMLNode *psOlderSibling,
139  CPLXMLNode *psNewSibling );
141  const char *pszName,
142  const char *pszValue );
143 CPLXMLNode CPL_DLL *CPLCloneXMLTree( CPLXMLNode *psTree );
144 int CPL_DLL CPLSetXMLValue( CPLXMLNode *psRoot, const char *pszPath,
145  const char *pszValue );
146 void CPL_DLL CPLStripXMLNamespace( CPLXMLNode *psRoot,
147  const char *pszNameSpace,
148  int bRecurse );
149 void CPL_DLL CPLCleanXMLElementName( char * );
150 
151 CPLXMLNode CPL_DLL *CPLParseXMLFile( const char *pszFilename );
152 int CPL_DLL CPLSerializeXMLTreeToFile( const CPLXMLNode *psTree,
153  const char *pszFilename );
154 
155 CPL_C_END
156 
157 #endif /* _CPL_MINIXML_H_INCLUDED */
CPLXMLNode * CPLCreateXMLNode(CPLXMLNode *poParent, CPLXMLNodeType eType, const char *pszText)
Create an document tree item.
Definition: cpl_minixml.cpp:1102
Definition: cpl_minixml.h:46
CPLXMLNode * CPLParseXMLFile(const char *pszFilename)
Parse XML file into tree.
Definition: cpl_minixml.cpp:1888
Document node structure.
Definition: cpl_minixml.h:65
int CPLRemoveXMLChild(CPLXMLNode *psParent, CPLXMLNode *psChild)
Remove child node from parent.
Definition: cpl_minixml.cpp:1559
Core portability definitions for CPL.
Definition: cpl_minixml.h:45
void CPLAddXMLSibling(CPLXMLNode *psOlderSibling, CPLXMLNode *psNewSibling)
Add new sibling.
Definition: cpl_minixml.cpp:1604
int CPLSetXMLValue(CPLXMLNode *psRoot, const char *pszPath, const char *pszValue)
Set element value by path.
Definition: cpl_minixml.cpp:1730
CPLXMLNode * CPLSearchXMLNode(CPLXMLNode *poRoot, const char *pszTarget)
Search for a node in document.
Definition: cpl_minixml.cpp:1259
void CPLStripXMLNamespace(CPLXMLNode *psRoot, const char *pszNameSpace, int bRecurse)
Strip indicated namespaces.
Definition: cpl_minixml.cpp:1821
char * CPLSerializeXMLTree(const CPLXMLNode *psNode)
Convert tree into string document.
Definition: cpl_minixml.cpp:1068
void CPLAddXMLChild(CPLXMLNode *psParent, CPLXMLNode *psChild)
Add child node to parent.
Definition: cpl_minixml.cpp:1502
CPLXMLNodeType eType
Node type.
Definition: cpl_minixml.h:73
struct CPLXMLNode CPLXMLNode
Document node structure.
CPLXMLNode * CPLParseXMLString(const char *)
Parse an XML string into tree form.
Definition: cpl_minixml.cpp:587
Definition: cpl_minixml.h:49
int CPLSerializeXMLTreeToFile(const CPLXMLNode *psTree, const char *pszFilename)
Write document tree to a file.
Definition: cpl_minixml.cpp:1928
Definition: cpl_minixml.h:47
void CPLDestroyXMLNode(CPLXMLNode *)
Destroy a tree.
Definition: cpl_minixml.cpp:1203
CPLXMLNode * CPLCloneXMLTree(CPLXMLNode *psTree)
Copy tree.
Definition: cpl_minixml.cpp:1674
struct CPLXMLNode * psNext
Next sibling.
Definition: cpl_minixml.h:105
CPLXMLNodeType
Definition: cpl_minixml.h:43
const char * CPLGetXMLValue(CPLXMLNode *poRoot, const char *pszPath, const char *pszDefault)
Fetch element/attribute value.
Definition: cpl_minixml.cpp:1440
Definition: cpl_minixml.h:48
void CPLCleanXMLElementName(char *)
Make string into safe XML token.
Definition: cpl_minixml.cpp:1996
CPLXMLNode * CPLGetXMLNode(CPLXMLNode *poRoot, const char *pszPath)
Find node by path.
Definition: cpl_minixml.cpp:1348
char * pszValue
Node value.
Definition: cpl_minixml.h:96
struct CPLXMLNode * psChild
Child node.
Definition: cpl_minixml.h:117
CPLXMLNode * CPLCreateXMLElementAndValue(CPLXMLNode *psParent, const char *pszName, const char *pszValue)
Create an element and text value.
Definition: cpl_minixml.cpp:1647

Generated for GDAL by doxygen 1.8.11.