\hypertarget{group__Eina__Simple__XML__Group}{\section{Simple\+\_\+\+X\+M\+L}
\label{group__Eina__Simple__XML__Group}\index{Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}}
}


Simplistic relaxed S\+A\+X-\/like X\+M\+L parser.  


\subsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \hyperlink{struct__Eina__Simple__XML__Attribute}{\+\_\+\+Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Attribute}
\item 
struct \hyperlink{struct__Eina__Simple__XML__Node}{\+\_\+\+Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node}
\item 
struct \hyperlink{struct__Eina__Simple__XML__Node__Tag}{\+\_\+\+Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Tag}
\item 
struct \hyperlink{struct__Eina__Simple__XML__Node__Data}{\+\_\+\+Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Data}
\end{DoxyCompactItemize}
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
\hypertarget{group__Eina__Simple__XML__Group_gafd03fe1282f2096fb79dd273e565e447}{typedef struct \\*
\hyperlink{struct__Eina__Simple__XML__Node}{\+\_\+\+Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node} {\bfseries Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node}}\label{group__Eina__Simple__XML__Group_gafd03fe1282f2096fb79dd273e565e447}

\item 
\hypertarget{group__Eina__Simple__XML__Group_gac0c88636c0c3ea1b3e4afea4608d408f}{typedef struct \\*
\hyperlink{struct__Eina__Simple__XML__Node__Tag}{\+\_\+\+Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Tag} {\bfseries Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Root}}\label{group__Eina__Simple__XML__Group_gac0c88636c0c3ea1b3e4afea4608d408f}

\item 
\hypertarget{group__Eina__Simple__XML__Group_gaceffd0e20fa79cde08848ccc13506f07}{typedef struct \\*
\hyperlink{struct__Eina__Simple__XML__Node__Tag}{\+\_\+\+Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Tag} {\bfseries Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Tag}}\label{group__Eina__Simple__XML__Group_gaceffd0e20fa79cde08848ccc13506f07}

\item 
\hypertarget{group__Eina__Simple__XML__Group_ga984cb5f5fdba4666460a47ef85cf6e51}{typedef struct \\*
\hyperlink{struct__Eina__Simple__XML__Node__Data}{\+\_\+\+Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Data} {\bfseries Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Data}}\label{group__Eina__Simple__XML__Group_ga984cb5f5fdba4666460a47ef85cf6e51}

\item 
\hypertarget{group__Eina__Simple__XML__Group_ga5b84375d3adafe2cf77f939dd40333dc}{typedef struct \\*
\hyperlink{struct__Eina__Simple__XML__Node__Data}{\+\_\+\+Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Data} {\bfseries Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+C\+Data}}\label{group__Eina__Simple__XML__Group_ga5b84375d3adafe2cf77f939dd40333dc}

\item 
\hypertarget{group__Eina__Simple__XML__Group_ga8ab2e21890f2ff8cd34bdbeb807dcb68}{typedef struct \\*
\hyperlink{struct__Eina__Simple__XML__Node__Data}{\+\_\+\+Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Data} {\bfseries Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Processing}}\label{group__Eina__Simple__XML__Group_ga8ab2e21890f2ff8cd34bdbeb807dcb68}

\item 
\hypertarget{group__Eina__Simple__XML__Group_ga30610d2c16c3bdeb32f24eb7a4b61824}{typedef struct \\*
\hyperlink{struct__Eina__Simple__XML__Node__Data}{\+\_\+\+Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Data} {\bfseries Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Doctype}}\label{group__Eina__Simple__XML__Group_ga30610d2c16c3bdeb32f24eb7a4b61824}

\item 
typedef struct \\*
\hyperlink{struct__Eina__Simple__XML__Node__Data}{\+\_\+\+Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Data} \hyperlink{group__Eina__Simple__XML__Group_ga05c86d915850a2446d325ba2d6cf8063}{Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Doctype\+\_\+\+Child}
\item 
\hypertarget{group__Eina__Simple__XML__Group_ga7b7952d9005077b3bcda658daac541eb}{typedef struct \\*
\hyperlink{struct__Eina__Simple__XML__Node__Data}{\+\_\+\+Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Data} {\bfseries Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Comment}}\label{group__Eina__Simple__XML__Group_ga7b7952d9005077b3bcda658daac541eb}

\item 
\hypertarget{group__Eina__Simple__XML__Group_ga1e22b8b85f566c19f12ae5deaa0b373a}{typedef struct \\*
\hyperlink{struct__Eina__Simple__XML__Attribute}{\+\_\+\+Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Attribute} {\bfseries Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Attribute}}\label{group__Eina__Simple__XML__Group_ga1e22b8b85f566c19f12ae5deaa0b373a}

\item 
\hypertarget{group__Eina__Simple__XML__Group_ga4d65c6a5555009430afb9cc1b90ae471}{typedef enum \\*
\hyperlink{group__Eina__Simple__XML__Group_gab17a1b993b2a2c9e710e41af5ead7ece}{\+\_\+\+Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Type} {\bfseries Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Type}}\label{group__Eina__Simple__XML__Group_ga4d65c6a5555009430afb9cc1b90ae471}

\item 
\hypertarget{group__Eina__Simple__XML__Group_ga2eee55ac395e0590adea5b572fa55973}{typedef enum \hyperlink{group__Eina__Simple__XML__Group_gad43c24562b801f797d8f7cb8b3fe2d4c}{\+\_\+\+Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Type} {\bfseries Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Type}}\label{group__Eina__Simple__XML__Group_ga2eee55ac395e0590adea5b572fa55973}

\item 
\hypertarget{group__Eina__Simple__XML__Group_ga8a1da45e10f90f61f73a2d812b4b51e5}{typedef \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}($\ast$ {\bfseries Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Cb} )(void $\ast$data, Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Type type, const char $\ast$content, unsigned offset, unsigned length)}\label{group__Eina__Simple__XML__Group_ga8a1da45e10f90f61f73a2d812b4b51e5}

\item 
\hypertarget{group__Eina__Simple__XML__Group_gaf4a0015a34947c62832d4f0995153675}{typedef \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}($\ast$ {\bfseries Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Attribute\+\_\+\+Cb} )(void $\ast$data, const char $\ast$key, const char $\ast$value)}\label{group__Eina__Simple__XML__Group_gaf4a0015a34947c62832d4f0995153675}

\end{DoxyCompactItemize}
\subsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \hyperlink{group__Eina__Simple__XML__Group_gab17a1b993b2a2c9e710e41af5ead7ece}{\+\_\+\+Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Type} \{ \\*
{\bfseries E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+N\+O\+D\+E\+\_\+\+R\+O\+O\+T} = 0, 
\\*
{\bfseries E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+N\+O\+D\+E\+\_\+\+T\+A\+G}, 
\\*
{\bfseries E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+N\+O\+D\+E\+\_\+\+D\+A\+T\+A}, 
\\*
{\bfseries E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+N\+O\+D\+E\+\_\+\+C\+D\+A\+T\+A}, 
\\*
{\bfseries E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+N\+O\+D\+E\+\_\+\+P\+R\+O\+C\+E\+S\+S\+I\+N\+G}, 
\\*
{\bfseries E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+N\+O\+D\+E\+\_\+\+D\+O\+C\+T\+Y\+P\+E}, 
\\*
{\bfseries E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+N\+O\+D\+E\+\_\+\+C\+O\+M\+M\+E\+N\+T}, 
\\*
\hyperlink{group__Eina__Simple__XML__Group_ggab17a1b993b2a2c9e710e41af5ead7ecea724b49a0f1b7f055d4cb39e59fb9ccaa}{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+N\+O\+D\+E\+\_\+\+D\+O\+C\+T\+Y\+P\+E\+\_\+\+C\+H\+I\+L\+D}
 \}
\item 
enum \hyperlink{group__Eina__Simple__XML__Group_gad43c24562b801f797d8f7cb8b3fe2d4c}{\+\_\+\+Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Type} \{ \\*
\hyperlink{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4ca5be26ebfdfdefbc411adde618c4c2dd4}{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+O\+P\+E\+N} = 0, 
\\*
\hyperlink{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4caf3ec2251fc391fcf3412f410df26e991}{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+O\+P\+E\+N\+\_\+\+E\+M\+P\+T\+Y}, 
\\*
\hyperlink{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4caf6a31cfbf0a78aa5a0136830ca8898bf}{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+C\+L\+O\+S\+E}, 
\\*
\hyperlink{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4caea1f4a70cdfcfba5c19ce1abe363c688}{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+D\+A\+T\+A}, 
\\*
\hyperlink{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4caeb893d29b667864bcd7407dee66e91a6}{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+C\+D\+A\+T\+A}, 
\\*
\hyperlink{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4ca9596249e3b0d83978a95102698a03878}{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+E\+R\+R\+O\+R}, 
\\*
\hyperlink{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4caa61757eb16e0840e6099703c13df93a0}{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+P\+R\+O\+C\+E\+S\+S\+I\+N\+G}, 
\\*
\hyperlink{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4cae4e85ea4ef3826be77042d4781a1839e}{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+D\+O\+C\+T\+Y\+P\+E}, 
\\*
\hyperlink{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4ca733afc8399521464b90ce884b8c28f4c}{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+C\+O\+M\+M\+E\+N\+T}, 
\\*
\hyperlink{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4ca70a83581ce5def5e56dd754e71023fb2}{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+I\+G\+N\+O\+R\+E\+D}, 
\\*
\hyperlink{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4ca1024548d9f3597126f02c9f6be974a50}{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+D\+O\+C\+T\+Y\+P\+E\+\_\+\+C\+H\+I\+L\+D}
 \}
\begin{DoxyCompactList}\small\item\em a simple X\+M\+L type. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Eina__Simple__XML__Group_gacbbb2b975f6f3e1d0a3d2215cc37da82}{eina\+\_\+simple\+\_\+xml\+\_\+parse} (const char $\ast$buf, unsigned buflen, \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} strip, Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Cb func, const void $\ast$data)
\begin{DoxyCompactList}\small\item\em Parse a section of X\+M\+L string text. \end{DoxyCompactList}\item 
const char $\ast$ \hyperlink{group__Eina__Simple__XML__Group_gaa356517d0c834904432275d7edd2a892}{eina\+\_\+simple\+\_\+xml\+\_\+tag\+\_\+attributes\+\_\+find} (const char $\ast$buf, unsigned buflen)
\begin{DoxyCompactList}\small\item\em Given the contents of a tag, find where the attributes start. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Eina__Simple__XML__Group_ga9525b33f8d78eb23def4f660b290f794}{eina\+\_\+simple\+\_\+xml\+\_\+attributes\+\_\+parse} (const char $\ast$buf, unsigned buflen, Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Attribute\+\_\+\+Cb func, const void $\ast$data)
\begin{DoxyCompactList}\small\item\em Given a buffer with xml attributes, parse them to key=value pairs. \end{DoxyCompactList}\item 
\hyperlink{struct__Eina__Simple__XML__Attribute}{Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Attribute} $\ast$ \hyperlink{group__Eina__Simple__XML__Group_ga0423710c6b5a63f96f0596ca43d2fe13}{eina\+\_\+simple\+\_\+xml\+\_\+attribute\+\_\+new} (\hyperlink{struct__Eina__Simple__XML__Node__Tag}{Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Tag} $\ast$parent, const char $\ast$key, const char $\ast$value)
\begin{DoxyCompactList}\small\item\em Create (and append) new attribute to tag. \end{DoxyCompactList}\item 
void \hyperlink{group__Eina__Simple__XML__Group_gaaafe18e1332223a16c59a1569553eed1}{eina\+\_\+simple\+\_\+xml\+\_\+attribute\+\_\+free} (\hyperlink{struct__Eina__Simple__XML__Attribute}{Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Attribute} $\ast$attr)
\begin{DoxyCompactList}\small\item\em Remove attribute from parent and delete it. \end{DoxyCompactList}\item 
\hyperlink{struct__Eina__Simple__XML__Node__Tag}{Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Tag} $\ast$ \hyperlink{group__Eina__Simple__XML__Group_gaafc15b5366df6323b0c2b45d666227ff}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+tag\+\_\+new} (\hyperlink{struct__Eina__Simple__XML__Node__Tag}{Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Tag} $\ast$parent, const char $\ast$name)
\begin{DoxyCompactList}\small\item\em Create new tag. \end{DoxyCompactList}\item 
void \hyperlink{group__Eina__Simple__XML__Group_ga6003d52b4332f185c54330ea2ad1f015}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+tag\+\_\+free} (\hyperlink{struct__Eina__Simple__XML__Node__Tag}{Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Tag} $\ast$tag)
\begin{DoxyCompactList}\small\item\em Remove tag from parent and delete it. \end{DoxyCompactList}\item 
\hyperlink{struct__Eina__Simple__XML__Node__Data}{Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Data} $\ast$ \hyperlink{group__Eina__Simple__XML__Group_ga4cbaf18751397d210af06fe926834fcf}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+data\+\_\+new} (\hyperlink{struct__Eina__Simple__XML__Node__Tag}{Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Tag} $\ast$parent, const char $\ast$contents, size\+\_\+t length)
\begin{DoxyCompactList}\small\item\em Create new data. \end{DoxyCompactList}\item 
void \hyperlink{group__Eina__Simple__XML__Group_ga77f49d08b327742794ed51808b32a5ef}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+data\+\_\+free} (\hyperlink{struct__Eina__Simple__XML__Node__Data}{Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Data} $\ast$node)
\begin{DoxyCompactList}\small\item\em Remove data from parent and delete it. \end{DoxyCompactList}\item 
\hyperlink{struct__Eina__Simple__XML__Node__Data}{Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+C\+Data} $\ast$ \hyperlink{group__Eina__Simple__XML__Group_ga26d9042354095f18f73c68bba96451a3}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+cdata\+\_\+new} (\hyperlink{struct__Eina__Simple__XML__Node__Tag}{Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Tag} $\ast$parent, const char $\ast$contents, size\+\_\+t length)
\begin{DoxyCompactList}\small\item\em Create new cdata. \end{DoxyCompactList}\item 
void \hyperlink{group__Eina__Simple__XML__Group_ga1022092edff13037fbfb19041659c569}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+cdata\+\_\+free} (\hyperlink{struct__Eina__Simple__XML__Node__Data}{Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Data} $\ast$node)
\begin{DoxyCompactList}\small\item\em Remove cdata from parent and delete it. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Simple__XML__Group_ga05c86d915850a2446d325ba2d6cf8063}{Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Doctype\+\_\+\+Child} $\ast$ \hyperlink{group__Eina__Simple__XML__Group_ga97aeaa645f690d0984346c4cfbafb79b}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+doctype\+\_\+child\+\_\+new} (\hyperlink{struct__Eina__Simple__XML__Node__Tag}{Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Tag} $\ast$parent, const char $\ast$contents, size\+\_\+t length)
\begin{DoxyCompactList}\small\item\em Create new doctype child. \end{DoxyCompactList}\item 
void \hyperlink{group__Eina__Simple__XML__Group_gadf9f79006304cd74f4034b0f7bf8fe29}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+doctype\+\_\+child\+\_\+free} (\hyperlink{struct__Eina__Simple__XML__Node__Data}{Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Data} $\ast$node)
\begin{DoxyCompactList}\small\item\em Remove doctype child from parent and delete it. \end{DoxyCompactList}\item 
\hyperlink{struct__Eina__Simple__XML__Node__Data}{Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Processing} $\ast$ \hyperlink{group__Eina__Simple__XML__Group_gad4456701e722807c5a98716932f5959a}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+processing\+\_\+new} (\hyperlink{struct__Eina__Simple__XML__Node__Tag}{Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Tag} $\ast$parent, const char $\ast$contents, size\+\_\+t length)
\begin{DoxyCompactList}\small\item\em Create new processing. \end{DoxyCompactList}\item 
void \hyperlink{group__Eina__Simple__XML__Group_ga829c71d5d81a964d2707dccba7a1a35a}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+processing\+\_\+free} (\hyperlink{struct__Eina__Simple__XML__Node__Data}{Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Data} $\ast$node)
\begin{DoxyCompactList}\small\item\em Remove processing from parent and delete it. \end{DoxyCompactList}\item 
\hyperlink{struct__Eina__Simple__XML__Node__Data}{Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Doctype} $\ast$ \hyperlink{group__Eina__Simple__XML__Group_ga0d3dd88fa214c1a79c4e1928bcf92474}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+doctype\+\_\+new} (\hyperlink{struct__Eina__Simple__XML__Node__Tag}{Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Tag} $\ast$parent, const char $\ast$contents, size\+\_\+t length)
\begin{DoxyCompactList}\small\item\em Create new doctype. \end{DoxyCompactList}\item 
void \hyperlink{group__Eina__Simple__XML__Group_gae48688ad88ea2b6a48e4155073c24082}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+doctype\+\_\+free} (\hyperlink{struct__Eina__Simple__XML__Node__Data}{Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Data} $\ast$node)
\begin{DoxyCompactList}\small\item\em Remove doctype from parent and delete it. \end{DoxyCompactList}\item 
\hyperlink{struct__Eina__Simple__XML__Node__Data}{Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Comment} $\ast$ \hyperlink{group__Eina__Simple__XML__Group_ga49cedf672a9d4c3580fa2399d664b717}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+comment\+\_\+new} (\hyperlink{struct__Eina__Simple__XML__Node__Tag}{Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Tag} $\ast$parent, const char $\ast$contents, size\+\_\+t length)
\begin{DoxyCompactList}\small\item\em Create new comment. \end{DoxyCompactList}\item 
void \hyperlink{group__Eina__Simple__XML__Group_ga5069d4f73643dec2e326ead6658a7456}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+comment\+\_\+free} (\hyperlink{struct__Eina__Simple__XML__Node__Data}{Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Data} $\ast$node)
\begin{DoxyCompactList}\small\item\em Remove comment from parent and delete it. \end{DoxyCompactList}\item 
\hyperlink{struct__Eina__Simple__XML__Node__Tag}{Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Root} $\ast$ \hyperlink{group__Eina__Simple__XML__Group_gadc951418424b679ea32ba63492894fe3}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+load} (const char $\ast$buf, unsigned buflen, \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} strip)
\begin{DoxyCompactList}\small\item\em Load a X\+M\+L node tree based on the given string. \end{DoxyCompactList}\item 
void \hyperlink{group__Eina__Simple__XML__Group_ga10bd106664ae8ca34a49fd621fee9dbc}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+root\+\_\+free} (\hyperlink{struct__Eina__Simple__XML__Node__Tag}{Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Root} $\ast$root)
\begin{DoxyCompactList}\small\item\em Free node tree build with \hyperlink{group__Eina__Simple__XML__Group_gadc951418424b679ea32ba63492894fe3}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+load()} \end{DoxyCompactList}\item 
char $\ast$ \hyperlink{group__Eina__Simple__XML__Group_ga212ed77de0d04140f24e69d8a1da84a7}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+dump} (\hyperlink{struct__Eina__Simple__XML__Node}{Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node} $\ast$node, const char $\ast$indent)
\begin{DoxyCompactList}\small\item\em Converts the node tree under the given element to a X\+M\+L string. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Simplistic relaxed S\+A\+X-\/like X\+M\+L parser. 

This parser is far from being compliant with X\+M\+L standard, but will do for most X\+M\+Ls out there. If you know that your format is simple and will not vary in future with strange corner cases, then you can use it safely.

The parser is S\+A\+X like, that is, it will tokenize contents and call you back so you can take some action. No contents are allocated during this parser work and it's not recursive, so you can use it with a very large document without worries.

It will not validate the document anyhow, neither it will create a tree hierarchy. That's up to you.

Accordingly to X\+M\+L, open tags may contain attributes. This parser will not tokenize this. If you want you can use \hyperlink{group__Eina__Simple__XML__Group_gaa356517d0c834904432275d7edd2a892}{eina\+\_\+simple\+\_\+xml\+\_\+tag\+\_\+attributes\+\_\+find()} and then \hyperlink{group__Eina__Simple__XML__Group_ga9525b33f8d78eb23def4f660b290f794}{eina\+\_\+simple\+\_\+xml\+\_\+attributes\+\_\+parse()}.

For more information, see \hyperlink{eina_simple_xml_parser_example_01_page}{this example}. 

\subsection{Typedef Documentation}
\hypertarget{group__Eina__Simple__XML__Group_ga05c86d915850a2446d325ba2d6cf8063}{\index{Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}!Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Doctype\+\_\+\+Child@{Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Doctype\+\_\+\+Child}}
\index{Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Doctype\+\_\+\+Child@{Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Doctype\+\_\+\+Child}!Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}}
\subsubsection[{Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Doctype\+\_\+\+Child}]{\setlength{\rightskip}{0pt plus 5cm}typedef struct {\bf \+\_\+\+Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Data} {\bf Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Doctype\+\_\+\+Child}}}\label{group__Eina__Simple__XML__Group_ga05c86d915850a2446d325ba2d6cf8063}
\begin{DoxySince}{Since}
1.\+8 
\end{DoxySince}


\subsection{Enumeration Type Documentation}
\hypertarget{group__Eina__Simple__XML__Group_gab17a1b993b2a2c9e710e41af5ead7ece}{\index{Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}!\+\_\+\+Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Type@{\+\_\+\+Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Type}}
\index{\+\_\+\+Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Type@{\+\_\+\+Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Type}!Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}}
\subsubsection[{\+\_\+\+Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Type}]{\setlength{\rightskip}{0pt plus 5cm}enum {\bf \+\_\+\+Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Type}}}\label{group__Eina__Simple__XML__Group_gab17a1b993b2a2c9e710e41af5ead7ece}
\begin{Desc}
\item[Enumerator]\par
\begin{description}
\index{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+N\+O\+D\+E\+\_\+\+D\+O\+C\+T\+Y\+P\+E\+\_\+\+C\+H\+I\+L\+D@{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+N\+O\+D\+E\+\_\+\+D\+O\+C\+T\+Y\+P\+E\+\_\+\+C\+H\+I\+L\+D}!Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}}\index{Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}!E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+N\+O\+D\+E\+\_\+\+D\+O\+C\+T\+Y\+P\+E\+\_\+\+C\+H\+I\+L\+D@{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+N\+O\+D\+E\+\_\+\+D\+O\+C\+T\+Y\+P\+E\+\_\+\+C\+H\+I\+L\+D}}\item[{\em 
\hypertarget{group__Eina__Simple__XML__Group_ggab17a1b993b2a2c9e710e41af5ead7ecea724b49a0f1b7f055d4cb39e59fb9ccaa}{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+N\+O\+D\+E\+\_\+\+D\+O\+C\+T\+Y\+P\+E\+\_\+\+C\+H\+I\+L\+D}\label{group__Eina__Simple__XML__Group_ggab17a1b993b2a2c9e710e41af5ead7ecea724b49a0f1b7f055d4cb39e59fb9ccaa}
}]\begin{DoxySince}{Since}
1.\+8 
\end{DoxySince}
\end{description}
\end{Desc}
\hypertarget{group__Eina__Simple__XML__Group_gad43c24562b801f797d8f7cb8b3fe2d4c}{\index{Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}!\+\_\+\+Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Type@{\+\_\+\+Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Type}}
\index{\+\_\+\+Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Type@{\+\_\+\+Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Type}!Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}}
\subsubsection[{\+\_\+\+Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Type}]{\setlength{\rightskip}{0pt plus 5cm}enum {\bf \+\_\+\+Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Type}}}\label{group__Eina__Simple__XML__Group_gad43c24562b801f797d8f7cb8b3fe2d4c}


a simple X\+M\+L type. 

\begin{Desc}
\item[Enumerator]\par
\begin{description}
\index{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+O\+P\+E\+N@{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+O\+P\+E\+N}!Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}}\index{Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}!E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+O\+P\+E\+N@{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+O\+P\+E\+N}}\item[{\em 
\hypertarget{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4ca5be26ebfdfdefbc411adde618c4c2dd4}{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+O\+P\+E\+N}\label{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4ca5be26ebfdfdefbc411adde618c4c2dd4}
}]$<$tag attribute=\char`\"{}value\char`\"{}$>$ \index{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+O\+P\+E\+N\+\_\+\+E\+M\+P\+T\+Y@{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+O\+P\+E\+N\+\_\+\+E\+M\+P\+T\+Y}!Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}}\index{Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}!E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+O\+P\+E\+N\+\_\+\+E\+M\+P\+T\+Y@{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+O\+P\+E\+N\+\_\+\+E\+M\+P\+T\+Y}}\item[{\em 
\hypertarget{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4caf3ec2251fc391fcf3412f410df26e991}{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+O\+P\+E\+N\+\_\+\+E\+M\+P\+T\+Y}\label{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4caf3ec2251fc391fcf3412f410df26e991}
}]$<$tag attribute=\char`\"{}value\char`\"{} /$>$ \index{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+C\+L\+O\+S\+E@{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+C\+L\+O\+S\+E}!Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}}\index{Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}!E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+C\+L\+O\+S\+E@{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+C\+L\+O\+S\+E}}\item[{\em 
\hypertarget{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4caf6a31cfbf0a78aa5a0136830ca8898bf}{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+C\+L\+O\+S\+E}\label{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4caf6a31cfbf0a78aa5a0136830ca8898bf}
}]$<$/tag$>$ \index{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+D\+A\+T\+A@{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+D\+A\+T\+A}!Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}}\index{Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}!E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+D\+A\+T\+A@{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+D\+A\+T\+A}}\item[{\em 
\hypertarget{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4caea1f4a70cdfcfba5c19ce1abe363c688}{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+D\+A\+T\+A}\label{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4caea1f4a70cdfcfba5c19ce1abe363c688}
}]tag text data \index{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+C\+D\+A\+T\+A@{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+C\+D\+A\+T\+A}!Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}}\index{Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}!E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+C\+D\+A\+T\+A@{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+C\+D\+A\+T\+A}}\item[{\em 
\hypertarget{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4caeb893d29b667864bcd7407dee66e91a6}{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+C\+D\+A\+T\+A}\label{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4caeb893d29b667864bcd7407dee66e91a6}
}]$<$!\mbox{[}C\+D\+A\+T\+A\mbox{[}something\mbox{]}\mbox{]}$>$ \index{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+E\+R\+R\+O\+R@{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+E\+R\+R\+O\+R}!Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}}\index{Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}!E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+E\+R\+R\+O\+R@{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+E\+R\+R\+O\+R}}\item[{\em 
\hypertarget{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4ca9596249e3b0d83978a95102698a03878}{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+E\+R\+R\+O\+R}\label{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4ca9596249e3b0d83978a95102698a03878}
}]error contents \index{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+P\+R\+O\+C\+E\+S\+S\+I\+N\+G@{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+P\+R\+O\+C\+E\+S\+S\+I\+N\+G}!Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}}\index{Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}!E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+P\+R\+O\+C\+E\+S\+S\+I\+N\+G@{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+P\+R\+O\+C\+E\+S\+S\+I\+N\+G}}\item[{\em 
\hypertarget{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4caa61757eb16e0840e6099703c13df93a0}{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+P\+R\+O\+C\+E\+S\+S\+I\+N\+G}\label{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4caa61757eb16e0840e6099703c13df93a0}
}]$<$?xml ... ?$>$ $<$?php .. ?$>$ \index{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+D\+O\+C\+T\+Y\+P\+E@{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+D\+O\+C\+T\+Y\+P\+E}!Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}}\index{Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}!E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+D\+O\+C\+T\+Y\+P\+E@{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+D\+O\+C\+T\+Y\+P\+E}}\item[{\em 
\hypertarget{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4cae4e85ea4ef3826be77042d4781a1839e}{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+D\+O\+C\+T\+Y\+P\+E}\label{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4cae4e85ea4ef3826be77042d4781a1839e}
}]$<$!\+D\+O\+C\+T\+Y\+P\+E html \index{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+C\+O\+M\+M\+E\+N\+T@{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+C\+O\+M\+M\+E\+N\+T}!Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}}\index{Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}!E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+C\+O\+M\+M\+E\+N\+T@{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+C\+O\+M\+M\+E\+N\+T}}\item[{\em 
\hypertarget{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4ca733afc8399521464b90ce884b8c28f4c}{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+C\+O\+M\+M\+E\+N\+T}\label{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4ca733afc8399521464b90ce884b8c28f4c}
}]$<$!-- something --$>$ \index{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+I\+G\+N\+O\+R\+E\+D@{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+I\+G\+N\+O\+R\+E\+D}!Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}}\index{Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}!E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+I\+G\+N\+O\+R\+E\+D@{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+I\+G\+N\+O\+R\+E\+D}}\item[{\em 
\hypertarget{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4ca70a83581ce5def5e56dd754e71023fb2}{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+I\+G\+N\+O\+R\+E\+D}\label{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4ca70a83581ce5def5e56dd754e71023fb2}
}]whatever is ignored by parser, like whitespace \index{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+D\+O\+C\+T\+Y\+P\+E\+\_\+\+C\+H\+I\+L\+D@{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+D\+O\+C\+T\+Y\+P\+E\+\_\+\+C\+H\+I\+L\+D}!Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}}\index{Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}!E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+D\+O\+C\+T\+Y\+P\+E\+\_\+\+C\+H\+I\+L\+D@{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+D\+O\+C\+T\+Y\+P\+E\+\_\+\+C\+H\+I\+L\+D}}\item[{\em 
\hypertarget{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4ca1024548d9f3597126f02c9f6be974a50}{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+D\+O\+C\+T\+Y\+P\+E\+\_\+\+C\+H\+I\+L\+D}\label{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4ca1024548d9f3597126f02c9f6be974a50}
}]$<$!\+D\+O\+C\+T\+Y\+P\+E\+\_\+\+C\+H\+I\+L\+D \begin{DoxySince}{Since}
1.\+8 
\end{DoxySince}
\end{description}
\end{Desc}


\subsection{Function Documentation}
\hypertarget{group__Eina__Simple__XML__Group_gacbbb2b975f6f3e1d0a3d2215cc37da82}{\index{Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}!eina\+\_\+simple\+\_\+xml\+\_\+parse@{eina\+\_\+simple\+\_\+xml\+\_\+parse}}
\index{eina\+\_\+simple\+\_\+xml\+\_\+parse@{eina\+\_\+simple\+\_\+xml\+\_\+parse}!Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}}
\subsubsection[{eina\+\_\+simple\+\_\+xml\+\_\+parse}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Bool} eina\+\_\+simple\+\_\+xml\+\_\+parse (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{buf, }
\item[{unsigned}]{buflen, }
\item[{{\bf Eina\+\_\+\+Bool}}]{strip, }
\item[{Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Cb}]{func, }
\item[{const void $\ast$}]{data}
\end{DoxyParamCaption}
)}}\label{group__Eina__Simple__XML__Group_gacbbb2b975f6f3e1d0a3d2215cc37da82}


Parse a section of X\+M\+L string text. 


\begin{DoxyParams}{Parameters}
{\em buf} & the input string. May not contain \textbackslash{}0 terminator. \\
\hline
{\em buflen} & the input string size. \\
\hline
{\em strip} & whenever this parser should strip leading and trailing whitespace. These whitespace will still be issued, but as type \hyperlink{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4ca70a83581ce5def5e56dd754e71023fb2}{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+I\+G\+N\+O\+R\+E\+D}. \\
\hline
{\em func} & what to call back while parse to do some action. The first parameter is the given user {\itshape data}, the second is the token type, the third is the pointer to content start (it's not a N\+U\+L\+L terminated string!), the forth is where this content is located inside {\itshape buf} (does not include tag start, for instance \char`\"{}$<$!\+D\+O\+C\+T\+Y\+P\+E value$>$\char`\"{} the offset points at \char`\"{}value\char`\"{}), the fifth is the size of the content. Whenever this function return \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} the parser will abort. \\
\hline
{\em data} & what to give as context to {\itshape func}.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+U\+E} on success or \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} if it was aborted by user or parsing error. 
\end{DoxyReturn}


References E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E, E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+C\+D\+A\+T\+A, E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+C\+L\+O\+S\+E, E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+C\+O\+M\+M\+E\+N\+T, E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+D\+A\+T\+A, E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+D\+O\+C\+T\+Y\+P\+E, E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+D\+O\+C\+T\+Y\+P\+E\+\_\+\+C\+H\+I\+L\+D, E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+E\+R\+R\+O\+R, E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+I\+G\+N\+O\+R\+E\+D, E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+O\+P\+E\+N, E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+O\+P\+E\+N\+\_\+\+E\+M\+P\+T\+Y, E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+P\+R\+O\+C\+E\+S\+S\+I\+N\+G, and E\+I\+N\+A\+\_\+\+T\+R\+U\+E.



Referenced by eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+load().

\hypertarget{group__Eina__Simple__XML__Group_gaa356517d0c834904432275d7edd2a892}{\index{Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}!eina\+\_\+simple\+\_\+xml\+\_\+tag\+\_\+attributes\+\_\+find@{eina\+\_\+simple\+\_\+xml\+\_\+tag\+\_\+attributes\+\_\+find}}
\index{eina\+\_\+simple\+\_\+xml\+\_\+tag\+\_\+attributes\+\_\+find@{eina\+\_\+simple\+\_\+xml\+\_\+tag\+\_\+attributes\+\_\+find}!Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}}
\subsubsection[{eina\+\_\+simple\+\_\+xml\+\_\+tag\+\_\+attributes\+\_\+find}]{\setlength{\rightskip}{0pt plus 5cm}const char$\ast$ eina\+\_\+simple\+\_\+xml\+\_\+tag\+\_\+attributes\+\_\+find (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{buf, }
\item[{unsigned}]{buflen}
\end{DoxyParamCaption}
)}}\label{group__Eina__Simple__XML__Group_gaa356517d0c834904432275d7edd2a892}


Given the contents of a tag, find where the attributes start. 


\begin{DoxyParams}{Parameters}
{\em buf} & the input string. May not contain \textbackslash{}0 terminator. \\
\hline
{\em buflen} & the input string size. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
pointer to the start of attributes, it can be used to feed \hyperlink{group__Eina__Simple__XML__Group_ga9525b33f8d78eb23def4f660b290f794}{eina\+\_\+simple\+\_\+xml\+\_\+attributes\+\_\+parse()}. {\ttfamily N\+U\+L\+L} is returned if no attributes were found.
\end{DoxyReturn}
The tag contents is returned by \hyperlink{group__Eina__Simple__XML__Group_gacbbb2b975f6f3e1d0a3d2215cc37da82}{eina\+\_\+simple\+\_\+xml\+\_\+parse()} when type is \hyperlink{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4ca5be26ebfdfdefbc411adde618c4c2dd4}{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+O\+P\+E\+N} or \hyperlink{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4caf3ec2251fc391fcf3412f410df26e991}{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+O\+P\+E\+N\+\_\+\+E\+M\+P\+T\+Y}. \hypertarget{group__Eina__Simple__XML__Group_ga9525b33f8d78eb23def4f660b290f794}{\index{Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}!eina\+\_\+simple\+\_\+xml\+\_\+attributes\+\_\+parse@{eina\+\_\+simple\+\_\+xml\+\_\+attributes\+\_\+parse}}
\index{eina\+\_\+simple\+\_\+xml\+\_\+attributes\+\_\+parse@{eina\+\_\+simple\+\_\+xml\+\_\+attributes\+\_\+parse}!Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}}
\subsubsection[{eina\+\_\+simple\+\_\+xml\+\_\+attributes\+\_\+parse}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Bool} eina\+\_\+simple\+\_\+xml\+\_\+attributes\+\_\+parse (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{buf, }
\item[{unsigned}]{buflen, }
\item[{Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Attribute\+\_\+\+Cb}]{func, }
\item[{const void $\ast$}]{data}
\end{DoxyParamCaption}
)}}\label{group__Eina__Simple__XML__Group_ga9525b33f8d78eb23def4f660b290f794}


Given a buffer with xml attributes, parse them to key=value pairs. 


\begin{DoxyParams}{Parameters}
{\em buf} & the input string. May not contain \textbackslash{}0 terminator. \\
\hline
{\em buflen} & the input string size. \\
\hline
{\em func} & what to call back while parse to do some action. The first parameter is the given user {\itshape data}, the second is the key (null-\/terminated) and the last is the value (null terminated). These strings should not be modified and reference is just valid until the function return. \\
\hline
{\em data} & data to pass to the callback function.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+U\+E} on success or \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} if it was aborted by user or parsing error. 
\end{DoxyReturn}


References alloca(), E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E, and E\+I\+N\+A\+\_\+\+T\+R\+U\+E.

\hypertarget{group__Eina__Simple__XML__Group_ga0423710c6b5a63f96f0596ca43d2fe13}{\index{Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}!eina\+\_\+simple\+\_\+xml\+\_\+attribute\+\_\+new@{eina\+\_\+simple\+\_\+xml\+\_\+attribute\+\_\+new}}
\index{eina\+\_\+simple\+\_\+xml\+\_\+attribute\+\_\+new@{eina\+\_\+simple\+\_\+xml\+\_\+attribute\+\_\+new}!Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}}
\subsubsection[{eina\+\_\+simple\+\_\+xml\+\_\+attribute\+\_\+new}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Attribute}$\ast$ eina\+\_\+simple\+\_\+xml\+\_\+attribute\+\_\+new (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Tag} $\ast$}]{parent, }
\item[{const char $\ast$}]{key, }
\item[{const char $\ast$}]{value}
\end{DoxyParamCaption}
)}}\label{group__Eina__Simple__XML__Group_ga0423710c6b5a63f96f0596ca43d2fe13}


Create (and append) new attribute to tag. 


\begin{DoxyParams}{Parameters}
{\em parent} & if provided, will be set in the resulting structure as well as the attribute will be appended to attributes list. \\
\hline
{\em key} & Null-\/terminated string. Must not be {\ttfamily N\+U\+L\+L}. \\
\hline
{\em value} & Null-\/terminated string. If {\ttfamily N\+U\+L\+L}, the empty string will be used.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Newly allocated memory or {\ttfamily N\+U\+L\+L} on error. This memory should be released with \hyperlink{group__Eina__Simple__XML__Group_gaaafe18e1332223a16c59a1569553eed1}{eina\+\_\+simple\+\_\+xml\+\_\+attribute\+\_\+free()} or indirectly with \hyperlink{group__Eina__Simple__XML__Group_ga6003d52b4332f185c54330ea2ad1f015}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+tag\+\_\+free()}. 
\end{DoxyReturn}


References eina\+\_\+inlist\+\_\+append(), E\+I\+N\+A\+\_\+\+I\+N\+L\+I\+S\+T\+\_\+\+G\+E\+T, E\+I\+N\+A\+\_\+\+M\+A\+G\+I\+C\+\_\+\+S\+E\+T, eina\+\_\+mempool\+\_\+malloc(), eina\+\_\+stringshare\+\_\+add(), E\+R\+R, and efl\+::eo\+::parent.

\hypertarget{group__Eina__Simple__XML__Group_gaaafe18e1332223a16c59a1569553eed1}{\index{Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}!eina\+\_\+simple\+\_\+xml\+\_\+attribute\+\_\+free@{eina\+\_\+simple\+\_\+xml\+\_\+attribute\+\_\+free}}
\index{eina\+\_\+simple\+\_\+xml\+\_\+attribute\+\_\+free@{eina\+\_\+simple\+\_\+xml\+\_\+attribute\+\_\+free}!Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}}
\subsubsection[{eina\+\_\+simple\+\_\+xml\+\_\+attribute\+\_\+free}]{\setlength{\rightskip}{0pt plus 5cm}void eina\+\_\+simple\+\_\+xml\+\_\+attribute\+\_\+free (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Attribute} $\ast$}]{attr}
\end{DoxyParamCaption}
)}}\label{group__Eina__Simple__XML__Group_gaaafe18e1332223a16c59a1569553eed1}


Remove attribute from parent and delete it. 


\begin{DoxyParams}{Parameters}
{\em attr} & attribute to release memory. \\
\hline
\end{DoxyParams}


References E\+I\+N\+A\+\_\+\+I\+N\+L\+I\+S\+T\+\_\+\+G\+E\+T, eina\+\_\+inlist\+\_\+remove(), E\+I\+N\+A\+\_\+\+M\+A\+G\+I\+C\+\_\+\+N\+O\+N\+E, E\+I\+N\+A\+\_\+\+M\+A\+G\+I\+C\+\_\+\+S\+E\+T, eina\+\_\+mempool\+\_\+free(), and eina\+\_\+stringshare\+\_\+del().

\hypertarget{group__Eina__Simple__XML__Group_gaafc15b5366df6323b0c2b45d666227ff}{\index{Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}!eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+tag\+\_\+new@{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+tag\+\_\+new}}
\index{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+tag\+\_\+new@{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+tag\+\_\+new}!Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}}
\subsubsection[{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+tag\+\_\+new}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Tag}$\ast$ eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+tag\+\_\+new (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Tag} $\ast$}]{parent, }
\item[{const char $\ast$}]{name}
\end{DoxyParamCaption}
)}}\label{group__Eina__Simple__XML__Group_gaafc15b5366df6323b0c2b45d666227ff}


Create new tag. 

If parent is provided, it is automatically appended.


\begin{DoxyParams}{Parameters}
{\em parent} & if provided, will be set in the resulting structure as well as the tag will be appended to children list. \\
\hline
{\em name} & Null-\/terminated string. Must not be {\ttfamily N\+U\+L\+L}.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Newly allocated memory or {\ttfamily N\+U\+L\+L} on error. This memory should be released with \hyperlink{group__Eina__Simple__XML__Group_ga6003d52b4332f185c54330ea2ad1f015}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+tag\+\_\+free()} or indirectly with \hyperlink{group__Eina__Simple__XML__Group_ga6003d52b4332f185c54330ea2ad1f015}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+tag\+\_\+free()} of the parent. 
\end{DoxyReturn}


References eina\+\_\+inlist\+\_\+append(), E\+I\+N\+A\+\_\+\+I\+N\+L\+I\+S\+T\+\_\+\+G\+E\+T, E\+I\+N\+A\+\_\+\+M\+A\+G\+I\+C\+\_\+\+S\+E\+T, eina\+\_\+mempool\+\_\+malloc(), eina\+\_\+stringshare\+\_\+add(), E\+R\+R, and efl\+::eo\+::parent.

\hypertarget{group__Eina__Simple__XML__Group_ga6003d52b4332f185c54330ea2ad1f015}{\index{Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}!eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+tag\+\_\+free@{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+tag\+\_\+free}}
\index{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+tag\+\_\+free@{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+tag\+\_\+free}!Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}}
\subsubsection[{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+tag\+\_\+free}]{\setlength{\rightskip}{0pt plus 5cm}void eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+tag\+\_\+free (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Tag} $\ast$}]{tag}
\end{DoxyParamCaption}
)}}\label{group__Eina__Simple__XML__Group_ga6003d52b4332f185c54330ea2ad1f015}


Remove tag from parent and delete it. 


\begin{DoxyParams}{Parameters}
{\em tag} & to release memory. \\
\hline
\end{DoxyParams}


References E\+R\+R.

\hypertarget{group__Eina__Simple__XML__Group_ga4cbaf18751397d210af06fe926834fcf}{\index{Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}!eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+data\+\_\+new@{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+data\+\_\+new}}
\index{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+data\+\_\+new@{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+data\+\_\+new}!Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}}
\subsubsection[{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+data\+\_\+new}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Data}$\ast$ eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+data\+\_\+new (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Tag} $\ast$}]{parent, }
\item[{const char $\ast$}]{contents, }
\item[{size\+\_\+t}]{length}
\end{DoxyParamCaption}
)}}\label{group__Eina__Simple__XML__Group_ga4cbaf18751397d210af06fe926834fcf}


Create new data. 

If parent is provided, it is automatically appended.


\begin{DoxyParams}{Parameters}
{\em parent} & if provided, will be set in the resulting structure as well as the data will be appended to children list. \\
\hline
{\em contents} & String to be used. Must not be {\ttfamily N\+U\+L\+L}. \\
\hline
{\em length} & size in bytes of {\itshape contents}.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Newly allocated memory or N\+U\+L\+L on error. This memory should be released with \hyperlink{group__Eina__Simple__XML__Group_ga77f49d08b327742794ed51808b32a5ef}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+data\+\_\+free()} or indirectly with \hyperlink{group__Eina__Simple__XML__Group_ga6003d52b4332f185c54330ea2ad1f015}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+tag\+\_\+free()} of the parent. 
\end{DoxyReturn}
\hypertarget{group__Eina__Simple__XML__Group_ga77f49d08b327742794ed51808b32a5ef}{\index{Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}!eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+data\+\_\+free@{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+data\+\_\+free}}
\index{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+data\+\_\+free@{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+data\+\_\+free}!Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}}
\subsubsection[{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+data\+\_\+free}]{\setlength{\rightskip}{0pt plus 5cm}void eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+data\+\_\+free (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Data} $\ast$}]{node}
\end{DoxyParamCaption}
)}}\label{group__Eina__Simple__XML__Group_ga77f49d08b327742794ed51808b32a5ef}


Remove data from parent and delete it. 


\begin{DoxyParams}{Parameters}
{\em node} & to release memory. \\
\hline
\end{DoxyParams}


References E\+R\+R.

\hypertarget{group__Eina__Simple__XML__Group_ga26d9042354095f18f73c68bba96451a3}{\index{Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}!eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+cdata\+\_\+new@{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+cdata\+\_\+new}}
\index{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+cdata\+\_\+new@{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+cdata\+\_\+new}!Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}}
\subsubsection[{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+cdata\+\_\+new}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+C\+Data}$\ast$ eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+cdata\+\_\+new (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Tag} $\ast$}]{parent, }
\item[{const char $\ast$}]{contents, }
\item[{size\+\_\+t}]{length}
\end{DoxyParamCaption}
)}}\label{group__Eina__Simple__XML__Group_ga26d9042354095f18f73c68bba96451a3}


Create new cdata. 

If parent is provided, it is automatically appended.


\begin{DoxyParams}{Parameters}
{\em parent} & if provided, will be set in the resulting structure as well as the cdata will be appended to children list. \\
\hline
{\em contents} & String to be used. Must not be {\ttfamily N\+U\+L\+L}. \\
\hline
{\em length} & size in bytes of {\itshape content}.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Newly allocated memory or {\ttfamily N\+U\+L\+L} on error. This memory should be released with \hyperlink{group__Eina__Simple__XML__Group_ga1022092edff13037fbfb19041659c569}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+cdata\+\_\+free()} or indirectly with \hyperlink{group__Eina__Simple__XML__Group_ga6003d52b4332f185c54330ea2ad1f015}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+tag\+\_\+free()} of the parent. 
\end{DoxyReturn}
\hypertarget{group__Eina__Simple__XML__Group_ga1022092edff13037fbfb19041659c569}{\index{Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}!eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+cdata\+\_\+free@{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+cdata\+\_\+free}}
\index{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+cdata\+\_\+free@{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+cdata\+\_\+free}!Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}}
\subsubsection[{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+cdata\+\_\+free}]{\setlength{\rightskip}{0pt plus 5cm}void eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+cdata\+\_\+free (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Data} $\ast$}]{node}
\end{DoxyParamCaption}
)}}\label{group__Eina__Simple__XML__Group_ga1022092edff13037fbfb19041659c569}


Remove cdata from parent and delete it. 


\begin{DoxyParams}{Parameters}
{\em node} & to release memory. \\
\hline
\end{DoxyParams}


References E\+R\+R.

\hypertarget{group__Eina__Simple__XML__Group_ga97aeaa645f690d0984346c4cfbafb79b}{\index{Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}!eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+doctype\+\_\+child\+\_\+new@{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+doctype\+\_\+child\+\_\+new}}
\index{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+doctype\+\_\+child\+\_\+new@{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+doctype\+\_\+child\+\_\+new}!Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}}
\subsubsection[{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+doctype\+\_\+child\+\_\+new}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Doctype\+\_\+\+Child}$\ast$ eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+doctype\+\_\+child\+\_\+new (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Tag} $\ast$}]{parent, }
\item[{const char $\ast$}]{contents, }
\item[{size\+\_\+t}]{length}
\end{DoxyParamCaption}
)}}\label{group__Eina__Simple__XML__Group_ga97aeaa645f690d0984346c4cfbafb79b}


Create new doctype child. 

If parent is provided, it is automatically appended.


\begin{DoxyParams}{Parameters}
{\em parent} & if provided, will be set in the resulting structure as well as the doctype child will be appended to children list. \\
\hline
{\em contents} & String to be used. Must not be {\ttfamily N\+U\+L\+L}. \\
\hline
{\em length} & size in bytes of {\itshape content}.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Newly allocated memory or {\ttfamily N\+U\+L\+L} on error. This memory should be released with \hyperlink{group__Eina__Simple__XML__Group_gadf9f79006304cd74f4034b0f7bf8fe29}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+doctype\+\_\+child\+\_\+free()} or indirectly with \hyperlink{group__Eina__Simple__XML__Group_ga6003d52b4332f185c54330ea2ad1f015}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+tag\+\_\+free()} of the parent.
\end{DoxyReturn}
\begin{DoxySince}{Since}
1.\+8 
\end{DoxySince}


References E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+N\+O\+D\+E\+\_\+\+D\+O\+C\+T\+Y\+P\+E\+\_\+\+C\+H\+I\+L\+D.

\hypertarget{group__Eina__Simple__XML__Group_gadf9f79006304cd74f4034b0f7bf8fe29}{\index{Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}!eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+doctype\+\_\+child\+\_\+free@{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+doctype\+\_\+child\+\_\+free}}
\index{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+doctype\+\_\+child\+\_\+free@{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+doctype\+\_\+child\+\_\+free}!Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}}
\subsubsection[{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+doctype\+\_\+child\+\_\+free}]{\setlength{\rightskip}{0pt plus 5cm}void eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+doctype\+\_\+child\+\_\+free (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Data} $\ast$}]{node}
\end{DoxyParamCaption}
)}}\label{group__Eina__Simple__XML__Group_gadf9f79006304cd74f4034b0f7bf8fe29}


Remove doctype child from parent and delete it. 


\begin{DoxyParams}{Parameters}
{\em node} & to release memory.\\
\hline
\end{DoxyParams}
\begin{DoxySince}{Since}
1.\+8 
\end{DoxySince}


References E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+N\+O\+D\+E\+\_\+\+D\+O\+C\+T\+Y\+P\+E\+\_\+\+C\+H\+I\+L\+D, and E\+R\+R.

\hypertarget{group__Eina__Simple__XML__Group_gad4456701e722807c5a98716932f5959a}{\index{Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}!eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+processing\+\_\+new@{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+processing\+\_\+new}}
\index{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+processing\+\_\+new@{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+processing\+\_\+new}!Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}}
\subsubsection[{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+processing\+\_\+new}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Processing}$\ast$ eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+processing\+\_\+new (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Tag} $\ast$}]{parent, }
\item[{const char $\ast$}]{contents, }
\item[{size\+\_\+t}]{length}
\end{DoxyParamCaption}
)}}\label{group__Eina__Simple__XML__Group_gad4456701e722807c5a98716932f5959a}


Create new processing. 

If parent is provided, it is automatically appended.


\begin{DoxyParams}{Parameters}
{\em parent} & if provided, will be set in the resulting structure as well as the processing will be appended to children list. \\
\hline
{\em contents} & String to be used. Must not be {\ttfamily N\+U\+L\+L}. \\
\hline
{\em length} & size in bytes of {\itshape contents}.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Newly allocated memory or {\ttfamily N\+U\+L\+L} on error. This memory should be released with \hyperlink{group__Eina__Simple__XML__Group_ga829c71d5d81a964d2707dccba7a1a35a}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+processing\+\_\+free()} or indirectly with \hyperlink{group__Eina__Simple__XML__Group_ga6003d52b4332f185c54330ea2ad1f015}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+tag\+\_\+free()} of the parent. 
\end{DoxyReturn}
\hypertarget{group__Eina__Simple__XML__Group_ga829c71d5d81a964d2707dccba7a1a35a}{\index{Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}!eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+processing\+\_\+free@{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+processing\+\_\+free}}
\index{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+processing\+\_\+free@{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+processing\+\_\+free}!Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}}
\subsubsection[{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+processing\+\_\+free}]{\setlength{\rightskip}{0pt plus 5cm}void eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+processing\+\_\+free (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Data} $\ast$}]{node}
\end{DoxyParamCaption}
)}}\label{group__Eina__Simple__XML__Group_ga829c71d5d81a964d2707dccba7a1a35a}


Remove processing from parent and delete it. 


\begin{DoxyParams}{Parameters}
{\em node} & processing to release memory. \\
\hline
\end{DoxyParams}


References E\+R\+R.

\hypertarget{group__Eina__Simple__XML__Group_ga0d3dd88fa214c1a79c4e1928bcf92474}{\index{Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}!eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+doctype\+\_\+new@{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+doctype\+\_\+new}}
\index{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+doctype\+\_\+new@{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+doctype\+\_\+new}!Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}}
\subsubsection[{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+doctype\+\_\+new}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Doctype}$\ast$ eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+doctype\+\_\+new (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Tag} $\ast$}]{parent, }
\item[{const char $\ast$}]{contents, }
\item[{size\+\_\+t}]{length}
\end{DoxyParamCaption}
)}}\label{group__Eina__Simple__XML__Group_ga0d3dd88fa214c1a79c4e1928bcf92474}


Create new doctype. 

If parent is provided, it is automatically appended.


\begin{DoxyParams}{Parameters}
{\em parent} & if provided, will be set in the resulting structure as well as the doctype will be appended to children list. \\
\hline
{\em contents} & String to be used. Must not be {\ttfamily N\+U\+L\+L}. \\
\hline
{\em length} & size in bytes of {\itshape contents}.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Newly allocated memory or {\ttfamily N\+U\+L\+L} on error. This memory should be released with \hyperlink{group__Eina__Simple__XML__Group_gae48688ad88ea2b6a48e4155073c24082}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+doctype\+\_\+free()} or indirectly with \hyperlink{group__Eina__Simple__XML__Group_ga6003d52b4332f185c54330ea2ad1f015}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+tag\+\_\+free()} of the parent. 
\end{DoxyReturn}
\hypertarget{group__Eina__Simple__XML__Group_gae48688ad88ea2b6a48e4155073c24082}{\index{Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}!eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+doctype\+\_\+free@{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+doctype\+\_\+free}}
\index{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+doctype\+\_\+free@{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+doctype\+\_\+free}!Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}}
\subsubsection[{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+doctype\+\_\+free}]{\setlength{\rightskip}{0pt plus 5cm}void eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+doctype\+\_\+free (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Data} $\ast$}]{node}
\end{DoxyParamCaption}
)}}\label{group__Eina__Simple__XML__Group_gae48688ad88ea2b6a48e4155073c24082}


Remove doctype from parent and delete it. 


\begin{DoxyParams}{Parameters}
{\em node} & doctype to release memory. \\
\hline
\end{DoxyParams}


References E\+R\+R.

\hypertarget{group__Eina__Simple__XML__Group_ga49cedf672a9d4c3580fa2399d664b717}{\index{Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}!eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+comment\+\_\+new@{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+comment\+\_\+new}}
\index{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+comment\+\_\+new@{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+comment\+\_\+new}!Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}}
\subsubsection[{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+comment\+\_\+new}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Comment}$\ast$ eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+comment\+\_\+new (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Tag} $\ast$}]{parent, }
\item[{const char $\ast$}]{contents, }
\item[{size\+\_\+t}]{length}
\end{DoxyParamCaption}
)}}\label{group__Eina__Simple__XML__Group_ga49cedf672a9d4c3580fa2399d664b717}


Create new comment. 

If parent is provided, it is automatically appended.


\begin{DoxyParams}{Parameters}
{\em parent} & if provided, will be set in the resulting structure as well as the comment will be appended to children list. \\
\hline
{\em contents} & String to be used. Must not be {\ttfamily N\+U\+L\+L}. \\
\hline
{\em length} & size in bytes of {\itshape contents}.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Newly allocated memory or {\ttfamily N\+U\+L\+L} on error. This memory should be released with \hyperlink{group__Eina__Simple__XML__Group_ga5069d4f73643dec2e326ead6658a7456}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+comment\+\_\+free()} or indirectly with \hyperlink{group__Eina__Simple__XML__Group_ga6003d52b4332f185c54330ea2ad1f015}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+tag\+\_\+free()} of the parent. 
\end{DoxyReturn}
\hypertarget{group__Eina__Simple__XML__Group_ga5069d4f73643dec2e326ead6658a7456}{\index{Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}!eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+comment\+\_\+free@{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+comment\+\_\+free}}
\index{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+comment\+\_\+free@{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+comment\+\_\+free}!Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}}
\subsubsection[{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+comment\+\_\+free}]{\setlength{\rightskip}{0pt plus 5cm}void eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+comment\+\_\+free (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Data} $\ast$}]{node}
\end{DoxyParamCaption}
)}}\label{group__Eina__Simple__XML__Group_ga5069d4f73643dec2e326ead6658a7456}


Remove comment from parent and delete it. 


\begin{DoxyParams}{Parameters}
{\em node} & comment to release memory. \\
\hline
\end{DoxyParams}


References E\+R\+R.

\hypertarget{group__Eina__Simple__XML__Group_gadc951418424b679ea32ba63492894fe3}{\index{Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}!eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+load@{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+load}}
\index{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+load@{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+load}!Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}}
\subsubsection[{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+load}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Root}$\ast$ eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+load (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{buf, }
\item[{unsigned}]{buflen, }
\item[{{\bf Eina\+\_\+\+Bool}}]{strip}
\end{DoxyParamCaption}
)}}\label{group__Eina__Simple__XML__Group_gadc951418424b679ea32ba63492894fe3}


Load a X\+M\+L node tree based on the given string. 


\begin{DoxyParams}{Parameters}
{\em buf} & the input string. May not contain \textbackslash{}0 terminator. \\
\hline
{\em buflen} & the input string size. \\
\hline
{\em strip} & whenever this parser should strip leading and trailing whitespace.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Document root with children tags, or {\ttfamily N\+U\+L\+L} on errors. Document with errors may return partial tree instead of {\ttfamily N\+U\+L\+L}, we'll do our best to avoid returning nothing. 
\end{DoxyReturn}


References E\+I\+N\+A\+\_\+\+M\+A\+G\+I\+C\+\_\+\+S\+E\+T, eina\+\_\+mempool\+\_\+malloc(), and eina\+\_\+simple\+\_\+xml\+\_\+parse().

\hypertarget{group__Eina__Simple__XML__Group_ga10bd106664ae8ca34a49fd621fee9dbc}{\index{Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}!eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+root\+\_\+free@{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+root\+\_\+free}}
\index{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+root\+\_\+free@{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+root\+\_\+free}!Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}}
\subsubsection[{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+root\+\_\+free}]{\setlength{\rightskip}{0pt plus 5cm}void eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+root\+\_\+free (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Root} $\ast$}]{root}
\end{DoxyParamCaption}
)}}\label{group__Eina__Simple__XML__Group_ga10bd106664ae8ca34a49fd621fee9dbc}


Free node tree build with \hyperlink{group__Eina__Simple__XML__Group_gadc951418424b679ea32ba63492894fe3}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+load()} 


\begin{DoxyParams}{Parameters}
{\em root} & memory returned by \hyperlink{group__Eina__Simple__XML__Group_gadc951418424b679ea32ba63492894fe3}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+load()} \\
\hline
\end{DoxyParams}


References E\+R\+R.

\hypertarget{group__Eina__Simple__XML__Group_ga212ed77de0d04140f24e69d8a1da84a7}{\index{Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}!eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+dump@{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+dump}}
\index{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+dump@{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+dump}!Simple\+\_\+\+X\+M\+L@{Simple\+\_\+\+X\+M\+L}}
\subsubsection[{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+dump}]{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+dump (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node} $\ast$}]{node, }
\item[{const char $\ast$}]{indent}
\end{DoxyParamCaption}
)}}\label{group__Eina__Simple__XML__Group_ga212ed77de0d04140f24e69d8a1da84a7}


Converts the node tree under the given element to a X\+M\+L string. 


\begin{DoxyParams}{Parameters}
{\em node} & the base node to convert. \\
\hline
{\em indent} & Indentation string, or {\ttfamily N\+U\+L\+L} to disable it.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily N\+U\+L\+L} on errors or a newly allocated string on success. 
\end{DoxyReturn}


References eina\+\_\+strbuf\+\_\+free(), eina\+\_\+strbuf\+\_\+new(), and eina\+\_\+strbuf\+\_\+string\+\_\+steal().

