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


Simplistic relaxed S\+A\+X-\/like X\+ML 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 
typedef struct \hyperlink{struct__Eina__Simple__XML__Node}{\+\_\+\+Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node} {\bfseries Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node}\hypertarget{group__Eina__Simple__XML__Group_gafd03fe1282f2096fb79dd273e565e447}{}\label{group__Eina__Simple__XML__Group_gafd03fe1282f2096fb79dd273e565e447}

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

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

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

\item 
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}\hypertarget{group__Eina__Simple__XML__Group_ga5b84375d3adafe2cf77f939dd40333dc}{}\label{group__Eina__Simple__XML__Group_ga5b84375d3adafe2cf77f939dd40333dc}

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

\item 
typedef struct \hyperlink{struct__Eina__Simple__XML__Node__Data}{\+\_\+\+Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Data} {\bfseries Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Doctype}\hypertarget{group__Eina__Simple__XML__Group_ga30610d2c16c3bdeb32f24eb7a4b61824}{}\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 
typedef struct \hyperlink{struct__Eina__Simple__XML__Node__Data}{\+\_\+\+Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Data} {\bfseries Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Comment}\hypertarget{group__Eina__Simple__XML__Group_ga7b7952d9005077b3bcda658daac541eb}{}\label{group__Eina__Simple__XML__Group_ga7b7952d9005077b3bcda658daac541eb}

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

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

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

\item 
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)\hypertarget{group__Eina__Simple__XML__Group_gafe4e44d22bf8b364bfeb17584e31e942}{}\label{group__Eina__Simple__XML__Group_gafe4e44d22bf8b364bfeb17584e31e942}

\item 
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)\hypertarget{group__Eina__Simple__XML__Group_gaba1b51d8dae7c7bd40dcc38612552db4}{}\label{group__Eina__Simple__XML__Group_gaba1b51d8dae7c7bd40dcc38612552db4}

\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\+OT} = 0, 
\\*
{\bfseries E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+N\+O\+D\+E\+\_\+\+T\+AG}, 
\\*
{\bfseries E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+N\+O\+D\+E\+\_\+\+D\+A\+TA}, 
\\*
{\bfseries E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+N\+O\+D\+E\+\_\+\+C\+D\+A\+TA}, 
\\*
{\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\+NG}, 
\\*
{\bfseries E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+N\+O\+D\+E\+\_\+\+D\+O\+C\+T\+Y\+PE}, 
\\*
{\bfseries E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+N\+O\+D\+E\+\_\+\+C\+O\+M\+M\+E\+NT}, 
\\*
\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\+LD}
 \}
\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\+EN} = 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\+TY}, 
\\*
\hyperlink{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4caf6a31cfbf0a78aa5a0136830ca8898bf}{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+C\+L\+O\+SE}, 
\\*
\hyperlink{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4caea1f4a70cdfcfba5c19ce1abe363c688}{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+D\+A\+TA}, 
\\*
\hyperlink{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4caeb893d29b667864bcd7407dee66e91a6}{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+C\+D\+A\+TA}, 
\\*
\hyperlink{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4ca9596249e3b0d83978a95102698a03878}{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+E\+R\+R\+OR}, 
\\*
\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\+NG}, 
\\*
\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\+PE}, 
\\*
\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\+NT}, 
\\*
\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\+ED}, 
\\*
\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\+LD}
 \}\begin{DoxyCompactList}\small\item\em a simple X\+ML 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\+ML 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{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Eina__Simple__XML__Group_gac21557e70e4a0d171698929e07ad25a3}{eina\+\_\+simple\+\_\+xml\+\_\+attribute\+\_\+w3c\+\_\+parse} (const char $\ast$buf, Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Attribute\+\_\+\+Cb func, const void $\ast$data)
\begin{DoxyCompactList}\small\item\em Given a buffer with the xml value of an 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\+ML 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\+ML string. \end{DoxyCompactList}\end{DoxyCompactItemize}


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

This parser is far from being compliant with X\+ML 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\+AX 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\textquotesingle{}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\textquotesingle{}s up to you.

Accordingly to X\+ML, 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}
\index{Simple\+\_\+\+X\+ML@{Simple\+\_\+\+X\+ML}!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\+ML@{Simple\+\_\+\+X\+ML}}
\subsubsection[{\texorpdfstring{Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Doctype\+\_\+\+Child}{Eina_Simple_XML_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}}\hypertarget{group__Eina__Simple__XML__Group_ga05c86d915850a2446d325ba2d6cf8063}{}\label{group__Eina__Simple__XML__Group_ga05c86d915850a2446d325ba2d6cf8063}
\begin{DoxySince}{Since}
1.\+8 
\end{DoxySince}


\subsection{Enumeration Type Documentation}
\index{Simple\+\_\+\+X\+ML@{Simple\+\_\+\+X\+ML}!\+\_\+\+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\+ML@{Simple\+\_\+\+X\+ML}}
\subsubsection[{\texorpdfstring{\+\_\+\+Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Type}{_Eina_Simple_XML_Node_Type}}]{\setlength{\rightskip}{0pt plus 5cm}enum {\bf \+\_\+\+Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Type}}\hypertarget{group__Eina__Simple__XML__Group_gab17a1b993b2a2c9e710e41af5ead7ece}{}\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\+LD@{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\+LD}!Simple\+\_\+\+X\+ML@{Simple\+\_\+\+X\+ML}}\index{Simple\+\_\+\+X\+ML@{Simple\+\_\+\+X\+ML}!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\+LD@{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\+LD}}\item[{\em 
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\+LD\hypertarget{group__Eina__Simple__XML__Group_ggab17a1b993b2a2c9e710e41af5ead7ecea724b49a0f1b7f055d4cb39e59fb9ccaa}{}\label{group__Eina__Simple__XML__Group_ggab17a1b993b2a2c9e710e41af5ead7ecea724b49a0f1b7f055d4cb39e59fb9ccaa}
}]\begin{DoxySince}{Since}
1.\+8 
\end{DoxySince}
\end{description}
\end{Desc}
\index{Simple\+\_\+\+X\+ML@{Simple\+\_\+\+X\+ML}!\+\_\+\+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\+ML@{Simple\+\_\+\+X\+ML}}
\subsubsection[{\texorpdfstring{\+\_\+\+Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Type}{_Eina_Simple_XML_Type}}]{\setlength{\rightskip}{0pt plus 5cm}enum {\bf \+\_\+\+Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Type}}\hypertarget{group__Eina__Simple__XML__Group_gad43c24562b801f797d8f7cb8b3fe2d4c}{}\label{group__Eina__Simple__XML__Group_gad43c24562b801f797d8f7cb8b3fe2d4c}


a simple X\+ML type. 

\begin{Desc}
\item[Enumerator]\par
\begin{description}
\index{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+O\+P\+EN@{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+O\+P\+EN}!Simple\+\_\+\+X\+ML@{Simple\+\_\+\+X\+ML}}\index{Simple\+\_\+\+X\+ML@{Simple\+\_\+\+X\+ML}!E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+O\+P\+EN@{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+O\+P\+EN}}\item[{\em 
E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+O\+P\+EN\hypertarget{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4ca5be26ebfdfdefbc411adde618c4c2dd4}{}\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\+TY@{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+O\+P\+E\+N\+\_\+\+E\+M\+P\+TY}!Simple\+\_\+\+X\+ML@{Simple\+\_\+\+X\+ML}}\index{Simple\+\_\+\+X\+ML@{Simple\+\_\+\+X\+ML}!E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+O\+P\+E\+N\+\_\+\+E\+M\+P\+TY@{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+O\+P\+E\+N\+\_\+\+E\+M\+P\+TY}}\item[{\em 
E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+O\+P\+E\+N\+\_\+\+E\+M\+P\+TY\hypertarget{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4caf3ec2251fc391fcf3412f410df26e991}{}\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\+SE@{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+C\+L\+O\+SE}!Simple\+\_\+\+X\+ML@{Simple\+\_\+\+X\+ML}}\index{Simple\+\_\+\+X\+ML@{Simple\+\_\+\+X\+ML}!E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+C\+L\+O\+SE@{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+C\+L\+O\+SE}}\item[{\em 
E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+C\+L\+O\+SE\hypertarget{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4caf6a31cfbf0a78aa5a0136830ca8898bf}{}\label{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4caf6a31cfbf0a78aa5a0136830ca8898bf}
}]$<$/tag$>$ \index{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+D\+A\+TA@{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+D\+A\+TA}!Simple\+\_\+\+X\+ML@{Simple\+\_\+\+X\+ML}}\index{Simple\+\_\+\+X\+ML@{Simple\+\_\+\+X\+ML}!E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+D\+A\+TA@{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+D\+A\+TA}}\item[{\em 
E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+D\+A\+TA\hypertarget{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4caea1f4a70cdfcfba5c19ce1abe363c688}{}\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\+TA@{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+C\+D\+A\+TA}!Simple\+\_\+\+X\+ML@{Simple\+\_\+\+X\+ML}}\index{Simple\+\_\+\+X\+ML@{Simple\+\_\+\+X\+ML}!E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+C\+D\+A\+TA@{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+C\+D\+A\+TA}}\item[{\em 
E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+C\+D\+A\+TA\hypertarget{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4caeb893d29b667864bcd7407dee66e91a6}{}\label{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4caeb893d29b667864bcd7407dee66e91a6}
}]$<$!\mbox{[}C\+D\+A\+TA\mbox{[}something\mbox{]}\mbox{]}$>$ \index{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+E\+R\+R\+OR@{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+E\+R\+R\+OR}!Simple\+\_\+\+X\+ML@{Simple\+\_\+\+X\+ML}}\index{Simple\+\_\+\+X\+ML@{Simple\+\_\+\+X\+ML}!E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+E\+R\+R\+OR@{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+E\+R\+R\+OR}}\item[{\em 
E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+E\+R\+R\+OR\hypertarget{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4ca9596249e3b0d83978a95102698a03878}{}\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\+NG@{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+P\+R\+O\+C\+E\+S\+S\+I\+NG}!Simple\+\_\+\+X\+ML@{Simple\+\_\+\+X\+ML}}\index{Simple\+\_\+\+X\+ML@{Simple\+\_\+\+X\+ML}!E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+P\+R\+O\+C\+E\+S\+S\+I\+NG@{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+P\+R\+O\+C\+E\+S\+S\+I\+NG}}\item[{\em 
E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+P\+R\+O\+C\+E\+S\+S\+I\+NG\hypertarget{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4caa61757eb16e0840e6099703c13df93a0}{}\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\+PE@{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+D\+O\+C\+T\+Y\+PE}!Simple\+\_\+\+X\+ML@{Simple\+\_\+\+X\+ML}}\index{Simple\+\_\+\+X\+ML@{Simple\+\_\+\+X\+ML}!E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+D\+O\+C\+T\+Y\+PE@{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+D\+O\+C\+T\+Y\+PE}}\item[{\em 
E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+D\+O\+C\+T\+Y\+PE\hypertarget{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4cae4e85ea4ef3826be77042d4781a1839e}{}\label{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4cae4e85ea4ef3826be77042d4781a1839e}
}]$<$!\+D\+O\+C\+T\+Y\+PE html \index{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+C\+O\+M\+M\+E\+NT@{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+C\+O\+M\+M\+E\+NT}!Simple\+\_\+\+X\+ML@{Simple\+\_\+\+X\+ML}}\index{Simple\+\_\+\+X\+ML@{Simple\+\_\+\+X\+ML}!E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+C\+O\+M\+M\+E\+NT@{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+C\+O\+M\+M\+E\+NT}}\item[{\em 
E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+C\+O\+M\+M\+E\+NT\hypertarget{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4ca733afc8399521464b90ce884b8c28f4c}{}\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\+ED@{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+I\+G\+N\+O\+R\+ED}!Simple\+\_\+\+X\+ML@{Simple\+\_\+\+X\+ML}}\index{Simple\+\_\+\+X\+ML@{Simple\+\_\+\+X\+ML}!E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+I\+G\+N\+O\+R\+ED@{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+I\+G\+N\+O\+R\+ED}}\item[{\em 
E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+I\+G\+N\+O\+R\+ED\hypertarget{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4ca70a83581ce5def5e56dd754e71023fb2}{}\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\+LD@{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+D\+O\+C\+T\+Y\+P\+E\+\_\+\+C\+H\+I\+LD}!Simple\+\_\+\+X\+ML@{Simple\+\_\+\+X\+ML}}\index{Simple\+\_\+\+X\+ML@{Simple\+\_\+\+X\+ML}!E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+D\+O\+C\+T\+Y\+P\+E\+\_\+\+C\+H\+I\+LD@{E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+D\+O\+C\+T\+Y\+P\+E\+\_\+\+C\+H\+I\+LD}}\item[{\em 
E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+D\+O\+C\+T\+Y\+P\+E\+\_\+\+C\+H\+I\+LD\hypertarget{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4ca1024548d9f3597126f02c9f6be974a50}{}\label{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4ca1024548d9f3597126f02c9f6be974a50}
}]$<$!\+D\+O\+C\+T\+Y\+P\+E\+\_\+\+C\+H\+I\+LD \begin{DoxySince}{Since}
1.\+8 
\end{DoxySince}
\end{description}
\end{Desc}


\subsection{Function Documentation}
\index{Simple\+\_\+\+X\+ML@{Simple\+\_\+\+X\+ML}!eina\+\_\+simple\+\_\+xml\+\_\+parse@{eina\+\_\+simple\+\_\+xml\+\_\+parse}}
\index{eina\+\_\+simple\+\_\+xml\+\_\+parse@{eina\+\_\+simple\+\_\+xml\+\_\+parse}!Simple\+\_\+\+X\+ML@{Simple\+\_\+\+X\+ML}}
\subsubsection[{\texorpdfstring{eina\+\_\+simple\+\_\+xml\+\_\+parse(const char $\ast$buf, unsigned buflen, Eina\+\_\+\+Bool strip, Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Cb func, const void $\ast$data)}{eina_simple_xml_parse(const char *buf, unsigned buflen, Eina_Bool strip, Eina_Simple_XML_Cb func, const void *data)}}]{\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}
)}\hypertarget{group__Eina__Simple__XML__Group_gacbbb2b975f6f3e1d0a3d2215cc37da82}{}\label{group__Eina__Simple__XML__Group_gacbbb2b975f6f3e1d0a3d2215cc37da82}


Parse a section of X\+ML 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\+ED}. \\
\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\textquotesingle{}s not a N\+U\+LL 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\+SE} 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\+UE} on success or \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE} if it was aborted by user or parsing error. 
\end{DoxyReturn}


References E\+I\+N\+A\+\_\+\+F\+A\+L\+SE, E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+C\+D\+A\+TA, E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+C\+L\+O\+SE, E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+C\+O\+M\+M\+E\+NT, E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+D\+A\+TA, E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+D\+O\+C\+T\+Y\+PE, E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+D\+O\+C\+T\+Y\+P\+E\+\_\+\+C\+H\+I\+LD, E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+E\+R\+R\+OR, E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+I\+G\+N\+O\+R\+ED, E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+O\+P\+EN, E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+O\+P\+E\+N\+\_\+\+E\+M\+P\+TY, E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+P\+R\+O\+C\+E\+S\+S\+I\+NG, and E\+I\+N\+A\+\_\+\+T\+R\+UE.



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

\index{Simple\+\_\+\+X\+ML@{Simple\+\_\+\+X\+ML}!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\+ML@{Simple\+\_\+\+X\+ML}}
\subsubsection[{\texorpdfstring{eina\+\_\+simple\+\_\+xml\+\_\+tag\+\_\+attributes\+\_\+find(const char $\ast$buf, unsigned buflen)}{eina_simple_xml_tag_attributes_find(const char *buf, unsigned buflen)}}]{\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}
)}\hypertarget{group__Eina__Simple__XML__Group_gaa356517d0c834904432275d7edd2a892}{}\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\+LL} 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\+EN} 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\+TY}. 

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

\index{Simple\+\_\+\+X\+ML@{Simple\+\_\+\+X\+ML}!eina\+\_\+simple\+\_\+xml\+\_\+attributes\+\_\+parse@{eina\+\_\+simple\+\_\+xml\+\_\+attributes\+\_\+parse}}
\index{eina\+\_\+simple\+\_\+xml\+\_\+attributes\+\_\+parse@{eina\+\_\+simple\+\_\+xml\+\_\+attributes\+\_\+parse}!Simple\+\_\+\+X\+ML@{Simple\+\_\+\+X\+ML}}
\subsubsection[{\texorpdfstring{eina\+\_\+simple\+\_\+xml\+\_\+attributes\+\_\+parse(const char $\ast$buf, unsigned buflen, Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Attribute\+\_\+\+Cb func, const void $\ast$data)}{eina_simple_xml_attributes_parse(const char *buf, unsigned buflen, Eina_Simple_XML_Attribute_Cb func, const void *data)}}]{\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}
)}\hypertarget{group__Eina__Simple__XML__Group_ga9525b33f8d78eb23def4f660b290f794}{}\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\+UE} on success or \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE} if it was aborted by user or parsing error. 
\end{DoxyReturn}


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



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

\index{Simple\+\_\+\+X\+ML@{Simple\+\_\+\+X\+ML}!eina\+\_\+simple\+\_\+xml\+\_\+attribute\+\_\+w3c\+\_\+parse@{eina\+\_\+simple\+\_\+xml\+\_\+attribute\+\_\+w3c\+\_\+parse}}
\index{eina\+\_\+simple\+\_\+xml\+\_\+attribute\+\_\+w3c\+\_\+parse@{eina\+\_\+simple\+\_\+xml\+\_\+attribute\+\_\+w3c\+\_\+parse}!Simple\+\_\+\+X\+ML@{Simple\+\_\+\+X\+ML}}
\subsubsection[{\texorpdfstring{eina\+\_\+simple\+\_\+xml\+\_\+attribute\+\_\+w3c\+\_\+parse(const char $\ast$buf, Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Attribute\+\_\+\+Cb func, const void $\ast$data)}{eina_simple_xml_attribute_w3c_parse(const char *buf, Eina_Simple_XML_Attribute_Cb func, const void *data)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Bool} eina\+\_\+simple\+\_\+xml\+\_\+attribute\+\_\+w3c\+\_\+parse (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{buf, }
\item[{Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Attribute\+\_\+\+Cb}]{func, }
\item[{const void $\ast$}]{data}
\end{DoxyParamCaption}
)}\hypertarget{group__Eina__Simple__XML__Group_gac21557e70e4a0d171698929e07ad25a3}{}\label{group__Eina__Simple__XML__Group_gac21557e70e4a0d171698929e07ad25a3}


Given a buffer with the xml value of an attributes, parse them to key\+:value pairs. 


\begin{DoxyParams}{Parameters}
{\em buf} & the input string. Need to contain \textbackslash{}0 terminator. \\
\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\+UE} on success or \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE} if it was aborted by user or parsing error.
\end{DoxyReturn}
\begin{DoxySince}{Since}
1.\+14 
\end{DoxySince}


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

\index{Simple\+\_\+\+X\+ML@{Simple\+\_\+\+X\+ML}!eina\+\_\+simple\+\_\+xml\+\_\+attribute\+\_\+new@{eina\+\_\+simple\+\_\+xml\+\_\+attribute\+\_\+new}}
\index{eina\+\_\+simple\+\_\+xml\+\_\+attribute\+\_\+new@{eina\+\_\+simple\+\_\+xml\+\_\+attribute\+\_\+new}!Simple\+\_\+\+X\+ML@{Simple\+\_\+\+X\+ML}}
\subsubsection[{\texorpdfstring{eina\+\_\+simple\+\_\+xml\+\_\+attribute\+\_\+new(\+Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Tag $\ast$parent, const char $\ast$key, const char $\ast$value)}{eina_simple_xml_attribute_new(Eina_Simple_XML_Node_Tag *parent, const char *key, const char *value)}}]{\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}
)}\hypertarget{group__Eina__Simple__XML__Group_ga0423710c6b5a63f96f0596ca43d2fe13}{}\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\+LL}. \\
\hline
{\em value} & Null-\/terminated string. If {\ttfamily N\+U\+LL}, the empty string will be used.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Newly allocated memory or {\ttfamily N\+U\+LL} 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\+ET, E\+I\+N\+A\+\_\+\+M\+A\+G\+I\+C\+\_\+\+S\+ET, eina\+\_\+mempool\+\_\+malloc(), eina\+\_\+stringshare\+\_\+add(), E\+RR, and efl\+::eo\+::parent.



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

\index{Simple\+\_\+\+X\+ML@{Simple\+\_\+\+X\+ML}!eina\+\_\+simple\+\_\+xml\+\_\+attribute\+\_\+free@{eina\+\_\+simple\+\_\+xml\+\_\+attribute\+\_\+free}}
\index{eina\+\_\+simple\+\_\+xml\+\_\+attribute\+\_\+free@{eina\+\_\+simple\+\_\+xml\+\_\+attribute\+\_\+free}!Simple\+\_\+\+X\+ML@{Simple\+\_\+\+X\+ML}}
\subsubsection[{\texorpdfstring{eina\+\_\+simple\+\_\+xml\+\_\+attribute\+\_\+free(\+Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Attribute $\ast$attr)}{eina_simple_xml_attribute_free(Eina_Simple_XML_Attribute *attr)}}]{\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}
)}\hypertarget{group__Eina__Simple__XML__Group_gaaafe18e1332223a16c59a1569553eed1}{}\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\+ET, eina\+\_\+inlist\+\_\+remove(), E\+I\+N\+A\+\_\+\+M\+A\+G\+I\+C\+\_\+\+N\+O\+NE, E\+I\+N\+A\+\_\+\+M\+A\+G\+I\+C\+\_\+\+S\+ET, eina\+\_\+mempool\+\_\+free(), and eina\+\_\+stringshare\+\_\+del().



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

\index{Simple\+\_\+\+X\+ML@{Simple\+\_\+\+X\+ML}!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\+ML@{Simple\+\_\+\+X\+ML}}
\subsubsection[{\texorpdfstring{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+tag\+\_\+new(\+Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Tag $\ast$parent, const char $\ast$name)}{eina_simple_xml_node_tag_new(Eina_Simple_XML_Node_Tag *parent, const char *name)}}]{\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}
)}\hypertarget{group__Eina__Simple__XML__Group_gaafc15b5366df6323b0c2b45d666227ff}{}\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\+LL}.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Newly allocated memory or {\ttfamily N\+U\+LL} 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\+\_\+\+C\+O\+N\+T\+A\+I\+N\+E\+R\+\_\+\+G\+ET, E\+I\+N\+A\+\_\+\+I\+N\+L\+I\+S\+T\+\_\+\+G\+ET, eina\+\_\+inlist\+\_\+remove(), E\+I\+N\+A\+\_\+\+M\+A\+G\+I\+C\+\_\+\+N\+O\+NE, E\+I\+N\+A\+\_\+\+M\+A\+G\+I\+C\+\_\+\+S\+ET, eina\+\_\+mempool\+\_\+free(), eina\+\_\+mempool\+\_\+malloc(), eina\+\_\+simple\+\_\+xml\+\_\+attribute\+\_\+free(), eina\+\_\+stringshare\+\_\+add(), eina\+\_\+stringshare\+\_\+del(), E\+RR, and efl\+::eo\+::parent.



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

\index{Simple\+\_\+\+X\+ML@{Simple\+\_\+\+X\+ML}!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\+ML@{Simple\+\_\+\+X\+ML}}
\subsubsection[{\texorpdfstring{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+tag\+\_\+free(\+Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Tag $\ast$tag)}{eina_simple_xml_node_tag_free(Eina_Simple_XML_Node_Tag *tag)}}]{\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}
)}\hypertarget{group__Eina__Simple__XML__Group_ga6003d52b4332f185c54330ea2ad1f015}{}\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 eina\+\_\+inlist\+\_\+append(), E\+I\+N\+A\+\_\+\+I\+N\+L\+I\+S\+T\+\_\+\+G\+ET, E\+I\+N\+A\+\_\+\+M\+A\+G\+I\+C\+\_\+\+S\+ET, E\+RR, and efl\+::eo\+::parent.

\index{Simple\+\_\+\+X\+ML@{Simple\+\_\+\+X\+ML}!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\+ML@{Simple\+\_\+\+X\+ML}}
\subsubsection[{\texorpdfstring{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+data\+\_\+new(\+Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Tag $\ast$parent, const char $\ast$contents, size\+\_\+t length)}{eina_simple_xml_node_data_new(Eina_Simple_XML_Node_Tag *parent, const char *contents, size_t length)}}]{\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}
)}\hypertarget{group__Eina__Simple__XML__Group_ga4cbaf18751397d210af06fe926834fcf}{}\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\+LL}. \\
\hline
{\em length} & size in bytes of {\itshape contents}.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Newly allocated memory or N\+U\+LL 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}


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

\index{Simple\+\_\+\+X\+ML@{Simple\+\_\+\+X\+ML}!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\+ML@{Simple\+\_\+\+X\+ML}}
\subsubsection[{\texorpdfstring{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+data\+\_\+free(\+Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Data $\ast$node)}{eina_simple_xml_node_data_free(Eina_Simple_XML_Node_Data *node)}}]{\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}
)}\hypertarget{group__Eina__Simple__XML__Group_ga77f49d08b327742794ed51808b32a5ef}{}\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\+RR.

\index{Simple\+\_\+\+X\+ML@{Simple\+\_\+\+X\+ML}!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\+ML@{Simple\+\_\+\+X\+ML}}
\subsubsection[{\texorpdfstring{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+cdata\+\_\+new(\+Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Tag $\ast$parent, const char $\ast$contents, size\+\_\+t length)}{eina_simple_xml_node_cdata_new(Eina_Simple_XML_Node_Tag *parent, const char *contents, size_t length)}}]{\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}
)}\hypertarget{group__Eina__Simple__XML__Group_ga26d9042354095f18f73c68bba96451a3}{}\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\+LL}. \\
\hline
{\em length} & size in bytes of {\itshape content}.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Newly allocated memory or {\ttfamily N\+U\+LL} 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}


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

\index{Simple\+\_\+\+X\+ML@{Simple\+\_\+\+X\+ML}!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\+ML@{Simple\+\_\+\+X\+ML}}
\subsubsection[{\texorpdfstring{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+cdata\+\_\+free(\+Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Data $\ast$node)}{eina_simple_xml_node_cdata_free(Eina_Simple_XML_Node_Data *node)}}]{\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}
)}\hypertarget{group__Eina__Simple__XML__Group_ga1022092edff13037fbfb19041659c569}{}\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\+RR.

\index{Simple\+\_\+\+X\+ML@{Simple\+\_\+\+X\+ML}!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\+ML@{Simple\+\_\+\+X\+ML}}
\subsubsection[{\texorpdfstring{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+doctype\+\_\+child\+\_\+new(\+Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Tag $\ast$parent, const char $\ast$contents, size\+\_\+t length)}{eina_simple_xml_node_doctype_child_new(Eina_Simple_XML_Node_Tag *parent, const char *contents, size_t length)}}]{\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}
)}\hypertarget{group__Eina__Simple__XML__Group_ga97aeaa645f690d0984346c4cfbafb79b}{}\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\+LL}. \\
\hline
{\em length} & size in bytes of {\itshape content}.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Newly allocated memory or {\ttfamily N\+U\+LL} 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\+LD.



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

\index{Simple\+\_\+\+X\+ML@{Simple\+\_\+\+X\+ML}!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\+ML@{Simple\+\_\+\+X\+ML}}
\subsubsection[{\texorpdfstring{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+doctype\+\_\+child\+\_\+free(\+Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Data $\ast$node)}{eina_simple_xml_node_doctype_child_free(Eina_Simple_XML_Node_Data *node)}}]{\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}
)}\hypertarget{group__Eina__Simple__XML__Group_gadf9f79006304cd74f4034b0f7bf8fe29}{}\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\+LD, and E\+RR.

\index{Simple\+\_\+\+X\+ML@{Simple\+\_\+\+X\+ML}!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\+ML@{Simple\+\_\+\+X\+ML}}
\subsubsection[{\texorpdfstring{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+processing\+\_\+new(\+Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Tag $\ast$parent, const char $\ast$contents, size\+\_\+t length)}{eina_simple_xml_node_processing_new(Eina_Simple_XML_Node_Tag *parent, const char *contents, size_t length)}}]{\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}
)}\hypertarget{group__Eina__Simple__XML__Group_gad4456701e722807c5a98716932f5959a}{}\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\+LL}. \\
\hline
{\em length} & size in bytes of {\itshape contents}.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Newly allocated memory or {\ttfamily N\+U\+LL} 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}


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

\index{Simple\+\_\+\+X\+ML@{Simple\+\_\+\+X\+ML}!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\+ML@{Simple\+\_\+\+X\+ML}}
\subsubsection[{\texorpdfstring{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+processing\+\_\+free(\+Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Data $\ast$node)}{eina_simple_xml_node_processing_free(Eina_Simple_XML_Node_Data *node)}}]{\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}
)}\hypertarget{group__Eina__Simple__XML__Group_ga829c71d5d81a964d2707dccba7a1a35a}{}\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\+RR.

\index{Simple\+\_\+\+X\+ML@{Simple\+\_\+\+X\+ML}!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\+ML@{Simple\+\_\+\+X\+ML}}
\subsubsection[{\texorpdfstring{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+doctype\+\_\+new(\+Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Tag $\ast$parent, const char $\ast$contents, size\+\_\+t length)}{eina_simple_xml_node_doctype_new(Eina_Simple_XML_Node_Tag *parent, const char *contents, size_t length)}}]{\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}
)}\hypertarget{group__Eina__Simple__XML__Group_ga0d3dd88fa214c1a79c4e1928bcf92474}{}\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\+LL}. \\
\hline
{\em length} & size in bytes of {\itshape contents}.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Newly allocated memory or {\ttfamily N\+U\+LL} 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}


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

\index{Simple\+\_\+\+X\+ML@{Simple\+\_\+\+X\+ML}!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\+ML@{Simple\+\_\+\+X\+ML}}
\subsubsection[{\texorpdfstring{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+doctype\+\_\+free(\+Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Data $\ast$node)}{eina_simple_xml_node_doctype_free(Eina_Simple_XML_Node_Data *node)}}]{\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}
)}\hypertarget{group__Eina__Simple__XML__Group_gae48688ad88ea2b6a48e4155073c24082}{}\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\+RR.

\index{Simple\+\_\+\+X\+ML@{Simple\+\_\+\+X\+ML}!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\+ML@{Simple\+\_\+\+X\+ML}}
\subsubsection[{\texorpdfstring{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+comment\+\_\+new(\+Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Tag $\ast$parent, const char $\ast$contents, size\+\_\+t length)}{eina_simple_xml_node_comment_new(Eina_Simple_XML_Node_Tag *parent, const char *contents, size_t length)}}]{\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}
)}\hypertarget{group__Eina__Simple__XML__Group_ga49cedf672a9d4c3580fa2399d664b717}{}\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\+LL}. \\
\hline
{\em length} & size in bytes of {\itshape contents}.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Newly allocated memory or {\ttfamily N\+U\+LL} 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}


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

\index{Simple\+\_\+\+X\+ML@{Simple\+\_\+\+X\+ML}!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\+ML@{Simple\+\_\+\+X\+ML}}
\subsubsection[{\texorpdfstring{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+comment\+\_\+free(\+Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Data $\ast$node)}{eina_simple_xml_node_comment_free(Eina_Simple_XML_Node_Data *node)}}]{\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}
)}\hypertarget{group__Eina__Simple__XML__Group_ga5069d4f73643dec2e326ead6658a7456}{}\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 D\+BG, E\+I\+N\+A\+\_\+\+F\+A\+L\+SE, eina\+\_\+simple\+\_\+xml\+\_\+attribute\+\_\+new(), eina\+\_\+simple\+\_\+xml\+\_\+attributes\+\_\+parse(), E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+C\+D\+A\+TA, E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+C\+L\+O\+SE, E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+C\+O\+M\+M\+E\+NT, E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+D\+A\+TA, E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+D\+O\+C\+T\+Y\+PE, E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+D\+O\+C\+T\+Y\+P\+E\+\_\+\+C\+H\+I\+LD, E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+E\+R\+R\+OR, E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+I\+G\+N\+O\+R\+ED, eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+cdata\+\_\+new(), eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+comment\+\_\+new(), eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+data\+\_\+new(), eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+doctype\+\_\+child\+\_\+new(), eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+doctype\+\_\+new(), eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+processing\+\_\+new(), eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+tag\+\_\+new(), E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+O\+P\+EN, E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+O\+P\+E\+N\+\_\+\+E\+M\+P\+TY, E\+I\+N\+A\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+X\+M\+L\+\_\+\+P\+R\+O\+C\+E\+S\+S\+I\+NG, eina\+\_\+simple\+\_\+xml\+\_\+tag\+\_\+attributes\+\_\+find(), eina\+\_\+stringshare\+\_\+add\+\_\+length(), eina\+\_\+stringshare\+\_\+del(), eina\+\_\+stringshare\+\_\+strlen(), E\+I\+N\+A\+\_\+\+T\+R\+UE, E\+RR, and W\+RN.

\index{Simple\+\_\+\+X\+ML@{Simple\+\_\+\+X\+ML}!eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+load@{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+load}}
\index{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+load@{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+load}!Simple\+\_\+\+X\+ML@{Simple\+\_\+\+X\+ML}}
\subsubsection[{\texorpdfstring{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+load(const char $\ast$buf, unsigned buflen, Eina\+\_\+\+Bool strip)}{eina_simple_xml_node_load(const char *buf, unsigned buflen, Eina_Bool strip)}}]{\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}
)}\hypertarget{group__Eina__Simple__XML__Group_gadc951418424b679ea32ba63492894fe3}{}\label{group__Eina__Simple__XML__Group_gadc951418424b679ea32ba63492894fe3}


Load a X\+ML 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\+LL} on errors. Document with errors may return partial tree instead of {\ttfamily N\+U\+LL}, we\textquotesingle{}ll do our best to avoid returning nothing. 
\end{DoxyReturn}


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

\index{Simple\+\_\+\+X\+ML@{Simple\+\_\+\+X\+ML}!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\+ML@{Simple\+\_\+\+X\+ML}}
\subsubsection[{\texorpdfstring{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+root\+\_\+free(\+Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node\+\_\+\+Root $\ast$root)}{eina_simple_xml_node_root_free(Eina_Simple_XML_Node_Root *root)}}]{\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}
)}\hypertarget{group__Eina__Simple__XML__Group_ga10bd106664ae8ca34a49fd621fee9dbc}{}\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\+I\+N\+A\+\_\+\+I\+N\+L\+I\+S\+T\+\_\+\+F\+O\+R\+E\+A\+CH, 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\+LD, eina\+\_\+strbuf\+\_\+append\+\_\+char(), eina\+\_\+strbuf\+\_\+append\+\_\+length(), eina\+\_\+strbuf\+\_\+append\+\_\+printf(), eina\+\_\+stringshare\+\_\+strlen(), and E\+RR.

\index{Simple\+\_\+\+X\+ML@{Simple\+\_\+\+X\+ML}!eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+dump@{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+dump}}
\index{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+dump@{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+dump}!Simple\+\_\+\+X\+ML@{Simple\+\_\+\+X\+ML}}
\subsubsection[{\texorpdfstring{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+dump(\+Eina\+\_\+\+Simple\+\_\+\+X\+M\+L\+\_\+\+Node $\ast$node, const char $\ast$indent)}{eina_simple_xml_node_dump(Eina_Simple_XML_Node *node, const char *indent)}}]{\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}
)}\hypertarget{group__Eina__Simple__XML__Group_ga212ed77de0d04140f24e69d8a1da84a7}{}\label{group__Eina__Simple__XML__Group_ga212ed77de0d04140f24e69d8a1da84a7}


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


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


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

