\hypertarget{group__Eina__Simple__XML__Group}{}\doxysection{Simple\+\_\+\+XML}
\label{group__Eina__Simple__XML__Group}\index{Simple\_XML@{Simple\_XML}}


Simplistic relaxed SAX-\/like XML parser.  


\doxysubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{struct__Eina__Simple__XML__Attribute}{\+\_\+\+Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Attribute}}
\item 
struct \mbox{\hyperlink{struct__Eina__Simple__XML__Node}{\+\_\+\+Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node}}
\item 
struct \mbox{\hyperlink{struct__Eina__Simple__XML__Node__Tag}{\+\_\+\+Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Tag}}
\item 
struct \mbox{\hyperlink{struct__Eina__Simple__XML__Node__Data}{\+\_\+\+Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Data}}
\end{DoxyCompactItemize}
\doxysubsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{group__Eina__Simple__XML__Group_gafd03fe1282f2096fb79dd273e565e447}\label{group__Eina__Simple__XML__Group_gafd03fe1282f2096fb79dd273e565e447}} 
typedef struct \mbox{\hyperlink{struct__Eina__Simple__XML__Node}{\+\_\+\+Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node}} {\bfseries Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node}
\item 
\mbox{\Hypertarget{group__Eina__Simple__XML__Group_gac0c88636c0c3ea1b3e4afea4608d408f}\label{group__Eina__Simple__XML__Group_gac0c88636c0c3ea1b3e4afea4608d408f}} 
typedef struct \mbox{\hyperlink{struct__Eina__Simple__XML__Node__Tag}{\+\_\+\+Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Tag}} {\bfseries Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Root}
\item 
\mbox{\Hypertarget{group__Eina__Simple__XML__Group_gaceffd0e20fa79cde08848ccc13506f07}\label{group__Eina__Simple__XML__Group_gaceffd0e20fa79cde08848ccc13506f07}} 
typedef struct \mbox{\hyperlink{struct__Eina__Simple__XML__Node__Tag}{\+\_\+\+Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Tag}} {\bfseries Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Tag}
\item 
\mbox{\Hypertarget{group__Eina__Simple__XML__Group_ga984cb5f5fdba4666460a47ef85cf6e51}\label{group__Eina__Simple__XML__Group_ga984cb5f5fdba4666460a47ef85cf6e51}} 
typedef struct \mbox{\hyperlink{struct__Eina__Simple__XML__Node__Data}{\+\_\+\+Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Data}} {\bfseries Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Data}
\item 
\mbox{\Hypertarget{group__Eina__Simple__XML__Group_ga5b84375d3adafe2cf77f939dd40333dc}\label{group__Eina__Simple__XML__Group_ga5b84375d3adafe2cf77f939dd40333dc}} 
typedef struct \mbox{\hyperlink{struct__Eina__Simple__XML__Node__Data}{\+\_\+\+Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Data}} {\bfseries Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+CData}
\item 
\mbox{\Hypertarget{group__Eina__Simple__XML__Group_ga8ab2e21890f2ff8cd34bdbeb807dcb68}\label{group__Eina__Simple__XML__Group_ga8ab2e21890f2ff8cd34bdbeb807dcb68}} 
typedef struct \mbox{\hyperlink{struct__Eina__Simple__XML__Node__Data}{\+\_\+\+Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Data}} {\bfseries Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Processing}
\item 
\mbox{\Hypertarget{group__Eina__Simple__XML__Group_ga30610d2c16c3bdeb32f24eb7a4b61824}\label{group__Eina__Simple__XML__Group_ga30610d2c16c3bdeb32f24eb7a4b61824}} 
typedef struct \mbox{\hyperlink{struct__Eina__Simple__XML__Node__Data}{\+\_\+\+Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Data}} {\bfseries Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Doctype}
\item 
typedef struct \mbox{\hyperlink{struct__Eina__Simple__XML__Node__Data}{\+\_\+\+Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Data}} \mbox{\hyperlink{group__Eina__Simple__XML__Group_ga05c86d915850a2446d325ba2d6cf8063}{Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Doctype\+\_\+\+Child}}
\item 
\mbox{\Hypertarget{group__Eina__Simple__XML__Group_ga7b7952d9005077b3bcda658daac541eb}\label{group__Eina__Simple__XML__Group_ga7b7952d9005077b3bcda658daac541eb}} 
typedef struct \mbox{\hyperlink{struct__Eina__Simple__XML__Node__Data}{\+\_\+\+Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Data}} {\bfseries Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Comment}
\item 
\mbox{\Hypertarget{group__Eina__Simple__XML__Group_ga1e22b8b85f566c19f12ae5deaa0b373a}\label{group__Eina__Simple__XML__Group_ga1e22b8b85f566c19f12ae5deaa0b373a}} 
typedef struct \mbox{\hyperlink{struct__Eina__Simple__XML__Attribute}{\+\_\+\+Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Attribute}} {\bfseries Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Attribute}
\item 
\mbox{\Hypertarget{group__Eina__Simple__XML__Group_ga82d64651c06d44e2fded702b7a7bceb6}\label{group__Eina__Simple__XML__Group_ga82d64651c06d44e2fded702b7a7bceb6}} 
typedef enum \mbox{\hyperlink{group__Eina__Simple__XML__Group_gab17a1b993b2a2c9e710e41af5ead7ece}{\+\_\+\+Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Type}} {\bfseries Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Type}
\item 
\mbox{\Hypertarget{group__Eina__Simple__XML__Group_ga270948fa6399eebc351fea71eea8008b}\label{group__Eina__Simple__XML__Group_ga270948fa6399eebc351fea71eea8008b}} 
typedef enum \mbox{\hyperlink{group__Eina__Simple__XML__Group_gad43c24562b801f797d8f7cb8b3fe2d4c}{\+\_\+\+Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Type}} {\bfseries Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Type}
\item 
\mbox{\Hypertarget{group__Eina__Simple__XML__Group_gafe4e44d22bf8b364bfeb17584e31e942}\label{group__Eina__Simple__XML__Group_gafe4e44d22bf8b364bfeb17584e31e942}} 
typedef \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}}($\ast$ {\bfseries Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Cb}) (void $\ast$data, Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Type type, const char $\ast$content, unsigned offset, unsigned length)
\item 
\mbox{\Hypertarget{group__Eina__Simple__XML__Group_gaba1b51d8dae7c7bd40dcc38612552db4}\label{group__Eina__Simple__XML__Group_gaba1b51d8dae7c7bd40dcc38612552db4}} 
typedef \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}}($\ast$ {\bfseries Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Attribute\+\_\+\+Cb}) (void $\ast$data, const char $\ast$key, const char $\ast$value)
\end{DoxyCompactItemize}
\doxysubsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \mbox{\hyperlink{group__Eina__Simple__XML__Group_gab17a1b993b2a2c9e710e41af5ead7ece}{\+\_\+\+Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Type}} \{ \newline
{\bfseries EINA\+\_\+\+SIMPLE\+\_\+\+XML\+\_\+\+NODE\+\_\+\+ROOT} = 0
, \newline
{\bfseries EINA\+\_\+\+SIMPLE\+\_\+\+XML\+\_\+\+NODE\+\_\+\+TAG}
, \newline
{\bfseries EINA\+\_\+\+SIMPLE\+\_\+\+XML\+\_\+\+NODE\+\_\+\+DATA}
, \newline
{\bfseries EINA\+\_\+\+SIMPLE\+\_\+\+XML\+\_\+\+NODE\+\_\+\+CDATA}
, \newline
{\bfseries EINA\+\_\+\+SIMPLE\+\_\+\+XML\+\_\+\+NODE\+\_\+\+PROCESSING}
, \newline
{\bfseries EINA\+\_\+\+SIMPLE\+\_\+\+XML\+\_\+\+NODE\+\_\+\+DOCTYPE}
, \newline
{\bfseries EINA\+\_\+\+SIMPLE\+\_\+\+XML\+\_\+\+NODE\+\_\+\+COMMENT}
, \newline
\mbox{\hyperlink{group__Eina__Simple__XML__Group_ggab17a1b993b2a2c9e710e41af5ead7ecea724b49a0f1b7f055d4cb39e59fb9ccaa}{EINA\+\_\+\+SIMPLE\+\_\+\+XML\+\_\+\+NODE\+\_\+\+DOCTYPE\+\_\+\+CHILD}}
 \}
\item 
enum \mbox{\hyperlink{group__Eina__Simple__XML__Group_gad43c24562b801f797d8f7cb8b3fe2d4c}{\+\_\+\+Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Type}} \{ \newline
\mbox{\hyperlink{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4ca5be26ebfdfdefbc411adde618c4c2dd4}{EINA\+\_\+\+SIMPLE\+\_\+\+XML\+\_\+\+OPEN}} = 0
, \newline
\mbox{\hyperlink{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4caf3ec2251fc391fcf3412f410df26e991}{EINA\+\_\+\+SIMPLE\+\_\+\+XML\+\_\+\+OPEN\+\_\+\+EMPTY}}
, \newline
\mbox{\hyperlink{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4caf6a31cfbf0a78aa5a0136830ca8898bf}{EINA\+\_\+\+SIMPLE\+\_\+\+XML\+\_\+\+CLOSE}}
, \newline
\mbox{\hyperlink{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4caea1f4a70cdfcfba5c19ce1abe363c688}{EINA\+\_\+\+SIMPLE\+\_\+\+XML\+\_\+\+DATA}}
, \newline
\mbox{\hyperlink{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4caeb893d29b667864bcd7407dee66e91a6}{EINA\+\_\+\+SIMPLE\+\_\+\+XML\+\_\+\+CDATA}}
, \newline
\mbox{\hyperlink{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4ca9596249e3b0d83978a95102698a03878}{EINA\+\_\+\+SIMPLE\+\_\+\+XML\+\_\+\+ERROR}}
, \newline
\mbox{\hyperlink{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4caa61757eb16e0840e6099703c13df93a0}{EINA\+\_\+\+SIMPLE\+\_\+\+XML\+\_\+\+PROCESSING}}
, \newline
\mbox{\hyperlink{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4cae4e85ea4ef3826be77042d4781a1839e}{EINA\+\_\+\+SIMPLE\+\_\+\+XML\+\_\+\+DOCTYPE}}
, \newline
\mbox{\hyperlink{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4ca733afc8399521464b90ce884b8c28f4c}{EINA\+\_\+\+SIMPLE\+\_\+\+XML\+\_\+\+COMMENT}}
, \newline
\mbox{\hyperlink{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4ca70a83581ce5def5e56dd754e71023fb2}{EINA\+\_\+\+SIMPLE\+\_\+\+XML\+\_\+\+IGNORED}}
, \newline
\mbox{\hyperlink{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4ca1024548d9f3597126f02c9f6be974a50}{EINA\+\_\+\+SIMPLE\+\_\+\+XML\+\_\+\+DOCTYPE\+\_\+\+CHILD}}
 \}
\begin{DoxyCompactList}\small\item\em a simple XML type. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eina__Simple__XML__Group_gacbbb2b975f6f3e1d0a3d2215cc37da82}{eina\+\_\+simple\+\_\+xml\+\_\+parse}} (const char $\ast$buf, unsigned buflen, \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} strip, Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Cb func, const void $\ast$data)
\begin{DoxyCompactList}\small\item\em Parses a section of XML string text. \end{DoxyCompactList}\item 
const char $\ast$ \mbox{\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 
\mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eina__Simple__XML__Group_ga9525b33f8d78eb23def4f660b290f794}{eina\+\_\+simple\+\_\+xml\+\_\+attributes\+\_\+parse}} (const char $\ast$buf, unsigned buflen, Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+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 
\mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eina__Simple__XML__Group_gac21557e70e4a0d171698929e07ad25a3}{eina\+\_\+simple\+\_\+xml\+\_\+attribute\+\_\+w3c\+\_\+parse}} (const char $\ast$buf, Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+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 
\mbox{\hyperlink{struct__Eina__Simple__XML__Attribute}{Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Attribute}} $\ast$ \mbox{\hyperlink{group__Eina__Simple__XML__Group_ga0423710c6b5a63f96f0596ca43d2fe13}{eina\+\_\+simple\+\_\+xml\+\_\+attribute\+\_\+new}} (\mbox{\hyperlink{struct__Eina__Simple__XML__Node__Tag}{Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Tag}} $\ast$parent, const char $\ast$key, const char $\ast$value)
\begin{DoxyCompactList}\small\item\em Creates (and appends) new attribute to tag. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{group__Eina__Simple__XML__Group_gaaafe18e1332223a16c59a1569553eed1}{eina\+\_\+simple\+\_\+xml\+\_\+attribute\+\_\+free}} (\mbox{\hyperlink{struct__Eina__Simple__XML__Attribute}{Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Attribute}} $\ast$attr)
\begin{DoxyCompactList}\small\item\em Removes attribute from parent and deletes it. \end{DoxyCompactList}\item 
\mbox{\hyperlink{struct__Eina__Simple__XML__Node__Tag}{Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Tag}} $\ast$ \mbox{\hyperlink{group__Eina__Simple__XML__Group_gaafc15b5366df6323b0c2b45d666227ff}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+tag\+\_\+new}} (\mbox{\hyperlink{struct__Eina__Simple__XML__Node__Tag}{Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Tag}} $\ast$parent, const char $\ast$name)
\begin{DoxyCompactList}\small\item\em Creates new tag. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{group__Eina__Simple__XML__Group_ga6003d52b4332f185c54330ea2ad1f015}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+tag\+\_\+free}} (\mbox{\hyperlink{struct__Eina__Simple__XML__Node__Tag}{Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Tag}} $\ast$tag)
\begin{DoxyCompactList}\small\item\em Removes tag from parent and deletes it. \end{DoxyCompactList}\item 
\mbox{\hyperlink{struct__Eina__Simple__XML__Node__Data}{Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Data}} $\ast$ \mbox{\hyperlink{group__Eina__Simple__XML__Group_ga4cbaf18751397d210af06fe926834fcf}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+data\+\_\+new}} (\mbox{\hyperlink{struct__Eina__Simple__XML__Node__Tag}{Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Tag}} $\ast$parent, const char $\ast$contents, size\+\_\+t length)
\begin{DoxyCompactList}\small\item\em Creates new data. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{group__Eina__Simple__XML__Group_ga77f49d08b327742794ed51808b32a5ef}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+data\+\_\+free}} (\mbox{\hyperlink{struct__Eina__Simple__XML__Node__Data}{Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Data}} $\ast$node)
\begin{DoxyCompactList}\small\item\em Removes data from parent and deletes it. \end{DoxyCompactList}\item 
\mbox{\hyperlink{struct__Eina__Simple__XML__Node__Data}{Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+CData}} $\ast$ \mbox{\hyperlink{group__Eina__Simple__XML__Group_ga26d9042354095f18f73c68bba96451a3}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+cdata\+\_\+new}} (\mbox{\hyperlink{struct__Eina__Simple__XML__Node__Tag}{Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Tag}} $\ast$parent, const char $\ast$contents, size\+\_\+t length)
\begin{DoxyCompactList}\small\item\em Creates new cdata. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{group__Eina__Simple__XML__Group_ga1022092edff13037fbfb19041659c569}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+cdata\+\_\+free}} (\mbox{\hyperlink{struct__Eina__Simple__XML__Node__Data}{Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Data}} $\ast$node)
\begin{DoxyCompactList}\small\item\em Removes cdata from parent and deletes it. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Simple__XML__Group_ga05c86d915850a2446d325ba2d6cf8063}{Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Doctype\+\_\+\+Child}} $\ast$ \mbox{\hyperlink{group__Eina__Simple__XML__Group_ga97aeaa645f690d0984346c4cfbafb79b}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+doctype\+\_\+child\+\_\+new}} (\mbox{\hyperlink{struct__Eina__Simple__XML__Node__Tag}{Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Tag}} $\ast$parent, const char $\ast$contents, size\+\_\+t length)
\begin{DoxyCompactList}\small\item\em Creates new doctype child. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{group__Eina__Simple__XML__Group_gadf9f79006304cd74f4034b0f7bf8fe29}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+doctype\+\_\+child\+\_\+free}} (\mbox{\hyperlink{struct__Eina__Simple__XML__Node__Data}{Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Data}} $\ast$node)
\begin{DoxyCompactList}\small\item\em Removes doctype child from parent and deletes it. \end{DoxyCompactList}\item 
\mbox{\hyperlink{struct__Eina__Simple__XML__Node__Data}{Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Processing}} $\ast$ \mbox{\hyperlink{group__Eina__Simple__XML__Group_gad4456701e722807c5a98716932f5959a}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+processing\+\_\+new}} (\mbox{\hyperlink{struct__Eina__Simple__XML__Node__Tag}{Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Tag}} $\ast$parent, const char $\ast$contents, size\+\_\+t length)
\begin{DoxyCompactList}\small\item\em Creates new processing. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{group__Eina__Simple__XML__Group_ga829c71d5d81a964d2707dccba7a1a35a}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+processing\+\_\+free}} (\mbox{\hyperlink{struct__Eina__Simple__XML__Node__Data}{Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Data}} $\ast$node)
\begin{DoxyCompactList}\small\item\em Removes processing from parent and deletes it. \end{DoxyCompactList}\item 
\mbox{\hyperlink{struct__Eina__Simple__XML__Node__Data}{Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Doctype}} $\ast$ \mbox{\hyperlink{group__Eina__Simple__XML__Group_ga0d3dd88fa214c1a79c4e1928bcf92474}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+doctype\+\_\+new}} (\mbox{\hyperlink{struct__Eina__Simple__XML__Node__Tag}{Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Tag}} $\ast$parent, const char $\ast$contents, size\+\_\+t length)
\begin{DoxyCompactList}\small\item\em Creates new doctype. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{group__Eina__Simple__XML__Group_gae48688ad88ea2b6a48e4155073c24082}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+doctype\+\_\+free}} (\mbox{\hyperlink{struct__Eina__Simple__XML__Node__Data}{Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Data}} $\ast$node)
\begin{DoxyCompactList}\small\item\em Removes doctype from parent and deletes it. \end{DoxyCompactList}\item 
\mbox{\hyperlink{struct__Eina__Simple__XML__Node__Data}{Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Comment}} $\ast$ \mbox{\hyperlink{group__Eina__Simple__XML__Group_ga49cedf672a9d4c3580fa2399d664b717}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+comment\+\_\+new}} (\mbox{\hyperlink{struct__Eina__Simple__XML__Node__Tag}{Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Tag}} $\ast$parent, const char $\ast$contents, size\+\_\+t length)
\begin{DoxyCompactList}\small\item\em Creates new comment. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{group__Eina__Simple__XML__Group_ga5069d4f73643dec2e326ead6658a7456}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+comment\+\_\+free}} (\mbox{\hyperlink{struct__Eina__Simple__XML__Node__Data}{Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Data}} $\ast$node)
\begin{DoxyCompactList}\small\item\em Removes comment from parent and deletes it. \end{DoxyCompactList}\item 
\mbox{\hyperlink{struct__Eina__Simple__XML__Node__Tag}{Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Root}} $\ast$ \mbox{\hyperlink{group__Eina__Simple__XML__Group_gadc951418424b679ea32ba63492894fe3}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+load}} (const char $\ast$buf, unsigned buflen, \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} strip)
\begin{DoxyCompactList}\small\item\em Loads a XML node tree based on the given string. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{group__Eina__Simple__XML__Group_ga10bd106664ae8ca34a49fd621fee9dbc}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+root\+\_\+free}} (\mbox{\hyperlink{struct__Eina__Simple__XML__Node__Tag}{Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Root}} $\ast$root)
\begin{DoxyCompactList}\small\item\em Frees node tree build with \mbox{\hyperlink{group__Eina__Simple__XML__Group_gadc951418424b679ea32ba63492894fe3}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+load()}} \end{DoxyCompactList}\item 
char $\ast$ \mbox{\hyperlink{group__Eina__Simple__XML__Group_ga212ed77de0d04140f24e69d8a1da84a7}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+dump}} (\mbox{\hyperlink{struct__Eina__Simple__XML__Node}{Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node}} $\ast$node, const char $\ast$indent)
\begin{DoxyCompactList}\small\item\em Converts the node tree under the given element to a XML string. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Simplistic relaxed SAX-\/like XML parser. 

This parser is far from being compliant with XML standard, but will do for most XMLs 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 SAX 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 XML, open tags may contain attributes. This parser will not tokenize this. If you want you can use \mbox{\hyperlink{group__Eina__Simple__XML__Group_gaa356517d0c834904432275d7edd2a892}{eina\+\_\+simple\+\_\+xml\+\_\+tag\+\_\+attributes\+\_\+find()}} and then \mbox{\hyperlink{group__Eina__Simple__XML__Group_ga9525b33f8d78eb23def4f660b290f794}{eina\+\_\+simple\+\_\+xml\+\_\+attributes\+\_\+parse()}}.

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

\doxysubsection{Typedef Documentation}
\mbox{\Hypertarget{group__Eina__Simple__XML__Group_ga05c86d915850a2446d325ba2d6cf8063}\label{group__Eina__Simple__XML__Group_ga05c86d915850a2446d325ba2d6cf8063}} 
\index{Simple\_XML@{Simple\_XML}!Eina\_Simple\_XML\_Node\_Doctype\_Child@{Eina\_Simple\_XML\_Node\_Doctype\_Child}}
\index{Eina\_Simple\_XML\_Node\_Doctype\_Child@{Eina\_Simple\_XML\_Node\_Doctype\_Child}!Simple\_XML@{Simple\_XML}}
\doxysubsubsection{\texorpdfstring{Eina\_Simple\_XML\_Node\_Doctype\_Child}{Eina\_Simple\_XML\_Node\_Doctype\_Child}}
{\footnotesize\ttfamily typedef struct \mbox{\hyperlink{struct__Eina__Simple__XML__Node__Data}{\+\_\+\+Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Data}} \mbox{\hyperlink{group__Eina__Simple__XML__Group_ga05c86d915850a2446d325ba2d6cf8063}{Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Doctype\+\_\+\+Child}}}

\begin{DoxySince}{Since}
1.\+8 
\end{DoxySince}


\doxysubsection{Enumeration Type Documentation}
\mbox{\Hypertarget{group__Eina__Simple__XML__Group_gab17a1b993b2a2c9e710e41af5ead7ece}\label{group__Eina__Simple__XML__Group_gab17a1b993b2a2c9e710e41af5ead7ece}} 
\index{Simple\_XML@{Simple\_XML}!\_Eina\_Simple\_XML\_Node\_Type@{\_Eina\_Simple\_XML\_Node\_Type}}
\index{\_Eina\_Simple\_XML\_Node\_Type@{\_Eina\_Simple\_XML\_Node\_Type}!Simple\_XML@{Simple\_XML}}
\doxysubsubsection{\texorpdfstring{\_Eina\_Simple\_XML\_Node\_Type}{\_Eina\_Simple\_XML\_Node\_Type}}
{\footnotesize\ttfamily enum \mbox{\hyperlink{group__Eina__Simple__XML__Group_gab17a1b993b2a2c9e710e41af5ead7ece}{\+\_\+\+Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Type}}}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{EINA\_SIMPLE\_XML\_NODE\_DOCTYPE\_CHILD@{EINA\_SIMPLE\_XML\_NODE\_DOCTYPE\_CHILD}!Simple\_XML@{Simple\_XML}}\index{Simple\_XML@{Simple\_XML}!EINA\_SIMPLE\_XML\_NODE\_DOCTYPE\_CHILD@{EINA\_SIMPLE\_XML\_NODE\_DOCTYPE\_CHILD}}}\mbox{\Hypertarget{group__Eina__Simple__XML__Group_ggab17a1b993b2a2c9e710e41af5ead7ecea724b49a0f1b7f055d4cb39e59fb9ccaa}\label{group__Eina__Simple__XML__Group_ggab17a1b993b2a2c9e710e41af5ead7ecea724b49a0f1b7f055d4cb39e59fb9ccaa}} 
EINA\+\_\+\+SIMPLE\+\_\+\+XML\+\_\+\+NODE\+\_\+\+DOCTYPE\+\_\+\+CHILD&\begin{DoxySince}{Since}
1.\+8 
\end{DoxySince}
\\
\hline

\end{DoxyEnumFields}
\mbox{\Hypertarget{group__Eina__Simple__XML__Group_gad43c24562b801f797d8f7cb8b3fe2d4c}\label{group__Eina__Simple__XML__Group_gad43c24562b801f797d8f7cb8b3fe2d4c}} 
\index{Simple\_XML@{Simple\_XML}!\_Eina\_Simple\_XML\_Type@{\_Eina\_Simple\_XML\_Type}}
\index{\_Eina\_Simple\_XML\_Type@{\_Eina\_Simple\_XML\_Type}!Simple\_XML@{Simple\_XML}}
\doxysubsubsection{\texorpdfstring{\_Eina\_Simple\_XML\_Type}{\_Eina\_Simple\_XML\_Type}}
{\footnotesize\ttfamily enum \mbox{\hyperlink{group__Eina__Simple__XML__Group_gad43c24562b801f797d8f7cb8b3fe2d4c}{\+\_\+\+Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Type}}}



a simple XML type. 

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{EINA\_SIMPLE\_XML\_OPEN@{EINA\_SIMPLE\_XML\_OPEN}!Simple\_XML@{Simple\_XML}}\index{Simple\_XML@{Simple\_XML}!EINA\_SIMPLE\_XML\_OPEN@{EINA\_SIMPLE\_XML\_OPEN}}}\mbox{\Hypertarget{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4ca5be26ebfdfdefbc411adde618c4c2dd4}\label{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4ca5be26ebfdfdefbc411adde618c4c2dd4}} 
EINA\+\_\+\+SIMPLE\+\_\+\+XML\+\_\+\+OPEN&$<$tag attribute=\char`\"{}value\char`\"{}$>$ \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{EINA\_SIMPLE\_XML\_OPEN\_EMPTY@{EINA\_SIMPLE\_XML\_OPEN\_EMPTY}!Simple\_XML@{Simple\_XML}}\index{Simple\_XML@{Simple\_XML}!EINA\_SIMPLE\_XML\_OPEN\_EMPTY@{EINA\_SIMPLE\_XML\_OPEN\_EMPTY}}}\mbox{\Hypertarget{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4caf3ec2251fc391fcf3412f410df26e991}\label{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4caf3ec2251fc391fcf3412f410df26e991}} 
EINA\+\_\+\+SIMPLE\+\_\+\+XML\+\_\+\+OPEN\+\_\+\+EMPTY&$<$tag attribute=\char`\"{}value\char`\"{} /$>$ \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{EINA\_SIMPLE\_XML\_CLOSE@{EINA\_SIMPLE\_XML\_CLOSE}!Simple\_XML@{Simple\_XML}}\index{Simple\_XML@{Simple\_XML}!EINA\_SIMPLE\_XML\_CLOSE@{EINA\_SIMPLE\_XML\_CLOSE}}}\mbox{\Hypertarget{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4caf6a31cfbf0a78aa5a0136830ca8898bf}\label{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4caf6a31cfbf0a78aa5a0136830ca8898bf}} 
EINA\+\_\+\+SIMPLE\+\_\+\+XML\+\_\+\+CLOSE&$<$/tag$>$ \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{EINA\_SIMPLE\_XML\_DATA@{EINA\_SIMPLE\_XML\_DATA}!Simple\_XML@{Simple\_XML}}\index{Simple\_XML@{Simple\_XML}!EINA\_SIMPLE\_XML\_DATA@{EINA\_SIMPLE\_XML\_DATA}}}\mbox{\Hypertarget{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4caea1f4a70cdfcfba5c19ce1abe363c688}\label{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4caea1f4a70cdfcfba5c19ce1abe363c688}} 
EINA\+\_\+\+SIMPLE\+\_\+\+XML\+\_\+\+DATA&tag text data \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{EINA\_SIMPLE\_XML\_CDATA@{EINA\_SIMPLE\_XML\_CDATA}!Simple\_XML@{Simple\_XML}}\index{Simple\_XML@{Simple\_XML}!EINA\_SIMPLE\_XML\_CDATA@{EINA\_SIMPLE\_XML\_CDATA}}}\mbox{\Hypertarget{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4caeb893d29b667864bcd7407dee66e91a6}\label{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4caeb893d29b667864bcd7407dee66e91a6}} 
EINA\+\_\+\+SIMPLE\+\_\+\+XML\+\_\+\+CDATA&$<$!\mbox{[}CDATA\mbox{[}something\mbox{]}\mbox{]}$>$ \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{EINA\_SIMPLE\_XML\_ERROR@{EINA\_SIMPLE\_XML\_ERROR}!Simple\_XML@{Simple\_XML}}\index{Simple\_XML@{Simple\_XML}!EINA\_SIMPLE\_XML\_ERROR@{EINA\_SIMPLE\_XML\_ERROR}}}\mbox{\Hypertarget{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4ca9596249e3b0d83978a95102698a03878}\label{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4ca9596249e3b0d83978a95102698a03878}} 
EINA\+\_\+\+SIMPLE\+\_\+\+XML\+\_\+\+ERROR&error contents \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{EINA\_SIMPLE\_XML\_PROCESSING@{EINA\_SIMPLE\_XML\_PROCESSING}!Simple\_XML@{Simple\_XML}}\index{Simple\_XML@{Simple\_XML}!EINA\_SIMPLE\_XML\_PROCESSING@{EINA\_SIMPLE\_XML\_PROCESSING}}}\mbox{\Hypertarget{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4caa61757eb16e0840e6099703c13df93a0}\label{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4caa61757eb16e0840e6099703c13df93a0}} 
EINA\+\_\+\+SIMPLE\+\_\+\+XML\+\_\+\+PROCESSING&$<$?xml ... ?$>$ $<$?php .. ?$>$ \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{EINA\_SIMPLE\_XML\_DOCTYPE@{EINA\_SIMPLE\_XML\_DOCTYPE}!Simple\_XML@{Simple\_XML}}\index{Simple\_XML@{Simple\_XML}!EINA\_SIMPLE\_XML\_DOCTYPE@{EINA\_SIMPLE\_XML\_DOCTYPE}}}\mbox{\Hypertarget{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4cae4e85ea4ef3826be77042d4781a1839e}\label{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4cae4e85ea4ef3826be77042d4781a1839e}} 
EINA\+\_\+\+SIMPLE\+\_\+\+XML\+\_\+\+DOCTYPE&$<$!\+DOCTYPE html \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{EINA\_SIMPLE\_XML\_COMMENT@{EINA\_SIMPLE\_XML\_COMMENT}!Simple\_XML@{Simple\_XML}}\index{Simple\_XML@{Simple\_XML}!EINA\_SIMPLE\_XML\_COMMENT@{EINA\_SIMPLE\_XML\_COMMENT}}}\mbox{\Hypertarget{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4ca733afc8399521464b90ce884b8c28f4c}\label{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4ca733afc8399521464b90ce884b8c28f4c}} 
EINA\+\_\+\+SIMPLE\+\_\+\+XML\+\_\+\+COMMENT&$<$!-\/-\/ something --$>$ \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{EINA\_SIMPLE\_XML\_IGNORED@{EINA\_SIMPLE\_XML\_IGNORED}!Simple\_XML@{Simple\_XML}}\index{Simple\_XML@{Simple\_XML}!EINA\_SIMPLE\_XML\_IGNORED@{EINA\_SIMPLE\_XML\_IGNORED}}}\mbox{\Hypertarget{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4ca70a83581ce5def5e56dd754e71023fb2}\label{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4ca70a83581ce5def5e56dd754e71023fb2}} 
EINA\+\_\+\+SIMPLE\+\_\+\+XML\+\_\+\+IGNORED&whatever is ignored by parser, like whitespace \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{EINA\_SIMPLE\_XML\_DOCTYPE\_CHILD@{EINA\_SIMPLE\_XML\_DOCTYPE\_CHILD}!Simple\_XML@{Simple\_XML}}\index{Simple\_XML@{Simple\_XML}!EINA\_SIMPLE\_XML\_DOCTYPE\_CHILD@{EINA\_SIMPLE\_XML\_DOCTYPE\_CHILD}}}\mbox{\Hypertarget{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4ca1024548d9f3597126f02c9f6be974a50}\label{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4ca1024548d9f3597126f02c9f6be974a50}} 
EINA\+\_\+\+SIMPLE\+\_\+\+XML\+\_\+\+DOCTYPE\+\_\+\+CHILD&$<$!\+DOCTYPE\+\_\+\+CHILD \begin{DoxySince}{Since}
1.\+8 
\end{DoxySince}
\\
\hline

\end{DoxyEnumFields}


\doxysubsection{Function Documentation}
\mbox{\Hypertarget{group__Eina__Simple__XML__Group_gacbbb2b975f6f3e1d0a3d2215cc37da82}\label{group__Eina__Simple__XML__Group_gacbbb2b975f6f3e1d0a3d2215cc37da82}} 
\index{Simple\_XML@{Simple\_XML}!eina\_simple\_xml\_parse@{eina\_simple\_xml\_parse}}
\index{eina\_simple\_xml\_parse@{eina\_simple\_xml\_parse}!Simple\_XML@{Simple\_XML}}
\doxysubsubsection{\texorpdfstring{eina\_simple\_xml\_parse()}{eina\_simple\_xml\_parse()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eina\+\_\+simple\+\_\+xml\+\_\+parse (\begin{DoxyParamCaption}\item[{const char $\ast$}]{buf,  }\item[{unsigned}]{buflen,  }\item[{\mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}}}]{strip,  }\item[{Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Cb}]{func,  }\item[{const void $\ast$}]{data }\end{DoxyParamCaption})}



Parses a section of XML string text. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em buf} & The input string. May not contain \textbackslash{}0 terminator. \\
\hline
\mbox{\texttt{ in}}  & {\em buflen} & The input string size. \\
\hline
\mbox{\texttt{ in}}  & {\em strip} & Whenever this parser should strip leading and trailing whitespace. These whitespace will still be issued, but as type \mbox{\hyperlink{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4ca70a83581ce5def5e56dd754e71023fb2}{EINA\+\_\+\+SIMPLE\+\_\+\+XML\+\_\+\+IGNORED}}. \\
\hline
\mbox{\texttt{ in}}  & {\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 NULL terminated string!), the fourth is where this content is located inside {\itshape buf} (does not include tag start, for instance \char`\"{}$<$!\+DOCTYPE value$>$\char`\"{} the offset points at \char`\"{}value\char`\"{}), the fifth is the size of the content. Whenever this function return \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{EINA\+\_\+\+FALSE}} the parser will abort. \\
\hline
\mbox{\texttt{ in}}  & {\em data} & What to give as context to {\itshape func}. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{EINA\+\_\+\+TRUE}} on success, or \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{EINA\+\_\+\+FALSE}} if it was aborted by user or parsing error. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__Eina__Simple__XML__Group_gaa356517d0c834904432275d7edd2a892}\label{group__Eina__Simple__XML__Group_gaa356517d0c834904432275d7edd2a892}} 
\index{Simple\_XML@{Simple\_XML}!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\_XML@{Simple\_XML}}
\doxysubsubsection{\texorpdfstring{eina\_simple\_xml\_tag\_attributes\_find()}{eina\_simple\_xml\_tag\_attributes\_find()}}
{\footnotesize\ttfamily const char$\ast$ eina\+\_\+simple\+\_\+xml\+\_\+tag\+\_\+attributes\+\_\+find (\begin{DoxyParamCaption}\item[{const char $\ast$}]{buf,  }\item[{unsigned}]{buflen }\end{DoxyParamCaption})}



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


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em buf} & The input string. May not contain \textbackslash{}0 terminator. \\
\hline
\mbox{\texttt{ in}}  & {\em buflen} & The input string size. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Pointer to the start of attributes, it can be used to feed \mbox{\hyperlink{group__Eina__Simple__XML__Group_ga9525b33f8d78eb23def4f660b290f794}{eina\+\_\+simple\+\_\+xml\+\_\+attributes\+\_\+parse()}}. {\ttfamily NULL} is returned if no attributes were found.
\end{DoxyReturn}
The tag contents is returned by \mbox{\hyperlink{group__Eina__Simple__XML__Group_gacbbb2b975f6f3e1d0a3d2215cc37da82}{eina\+\_\+simple\+\_\+xml\+\_\+parse()}} when type is \mbox{\hyperlink{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4ca5be26ebfdfdefbc411adde618c4c2dd4}{EINA\+\_\+\+SIMPLE\+\_\+\+XML\+\_\+\+OPEN}} or \mbox{\hyperlink{group__Eina__Simple__XML__Group_ggad43c24562b801f797d8f7cb8b3fe2d4caf3ec2251fc391fcf3412f410df26e991}{EINA\+\_\+\+SIMPLE\+\_\+\+XML\+\_\+\+OPEN\+\_\+\+EMPTY}}. \mbox{\Hypertarget{group__Eina__Simple__XML__Group_ga9525b33f8d78eb23def4f660b290f794}\label{group__Eina__Simple__XML__Group_ga9525b33f8d78eb23def4f660b290f794}} 
\index{Simple\_XML@{Simple\_XML}!eina\_simple\_xml\_attributes\_parse@{eina\_simple\_xml\_attributes\_parse}}
\index{eina\_simple\_xml\_attributes\_parse@{eina\_simple\_xml\_attributes\_parse}!Simple\_XML@{Simple\_XML}}
\doxysubsubsection{\texorpdfstring{eina\_simple\_xml\_attributes\_parse()}{eina\_simple\_xml\_attributes\_parse()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eina\+\_\+simple\+\_\+xml\+\_\+attributes\+\_\+parse (\begin{DoxyParamCaption}\item[{const char $\ast$}]{buf,  }\item[{unsigned}]{buflen,  }\item[{Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Attribute\+\_\+\+Cb}]{func,  }\item[{const void $\ast$}]{data }\end{DoxyParamCaption})}



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


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em buf} & The input string. May not contain \textbackslash{}0 terminator. \\
\hline
\mbox{\texttt{ in}}  & {\em buflen} & The input string size. \\
\hline
\mbox{\texttt{ in}}  & {\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
\mbox{\texttt{ in}}  & {\em data} & Data to pass to the callback function.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{EINA\+\_\+\+TRUE}} on success, or \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{EINA\+\_\+\+FALSE}} if it was aborted by user or parsing error. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__Eina__Simple__XML__Group_gac21557e70e4a0d171698929e07ad25a3}\label{group__Eina__Simple__XML__Group_gac21557e70e4a0d171698929e07ad25a3}} 
\index{Simple\_XML@{Simple\_XML}!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\_XML@{Simple\_XML}}
\doxysubsubsection{\texorpdfstring{eina\_simple\_xml\_attribute\_w3c\_parse()}{eina\_simple\_xml\_attribute\_w3c\_parse()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eina\+\_\+simple\+\_\+xml\+\_\+attribute\+\_\+w3c\+\_\+parse (\begin{DoxyParamCaption}\item[{const char $\ast$}]{buf,  }\item[{Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Attribute\+\_\+\+Cb}]{func,  }\item[{const void $\ast$}]{data }\end{DoxyParamCaption})}



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


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em buf} & the input string. Need to contain \textbackslash{}0 terminator. \\
\hline
\mbox{\texttt{ in}}  & {\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
\mbox{\texttt{ in}}  & {\em data} & data to pass to the callback function.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{EINA\+\_\+\+TRUE}} on success or \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{EINA\+\_\+\+FALSE}} if it was aborted by user or parsing error.
\end{DoxyReturn}
\begin{DoxySince}{Since}
1.\+14 
\end{DoxySince}
\mbox{\Hypertarget{group__Eina__Simple__XML__Group_ga0423710c6b5a63f96f0596ca43d2fe13}\label{group__Eina__Simple__XML__Group_ga0423710c6b5a63f96f0596ca43d2fe13}} 
\index{Simple\_XML@{Simple\_XML}!eina\_simple\_xml\_attribute\_new@{eina\_simple\_xml\_attribute\_new}}
\index{eina\_simple\_xml\_attribute\_new@{eina\_simple\_xml\_attribute\_new}!Simple\_XML@{Simple\_XML}}
\doxysubsubsection{\texorpdfstring{eina\_simple\_xml\_attribute\_new()}{eina\_simple\_xml\_attribute\_new()}}
{\footnotesize\ttfamily \mbox{\hyperlink{struct__Eina__Simple__XML__Attribute}{Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Attribute}}$\ast$ eina\+\_\+simple\+\_\+xml\+\_\+attribute\+\_\+new (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct__Eina__Simple__XML__Node__Tag}{Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Tag}} $\ast$}]{parent,  }\item[{const char $\ast$}]{key,  }\item[{const char $\ast$}]{value }\end{DoxyParamCaption})}



Creates (and appends) new attribute to tag. 


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


References eina\+\_\+inlist\+\_\+append(), EINA\+\_\+\+INLIST\+\_\+\+GET, EINA\+\_\+\+MAGIC\+\_\+\+SET, eina\+\_\+mempool\+\_\+malloc(), eina\+\_\+stringshare\+\_\+add(), and ERR.

\mbox{\Hypertarget{group__Eina__Simple__XML__Group_gaaafe18e1332223a16c59a1569553eed1}\label{group__Eina__Simple__XML__Group_gaaafe18e1332223a16c59a1569553eed1}} 
\index{Simple\_XML@{Simple\_XML}!eina\_simple\_xml\_attribute\_free@{eina\_simple\_xml\_attribute\_free}}
\index{eina\_simple\_xml\_attribute\_free@{eina\_simple\_xml\_attribute\_free}!Simple\_XML@{Simple\_XML}}
\doxysubsubsection{\texorpdfstring{eina\_simple\_xml\_attribute\_free()}{eina\_simple\_xml\_attribute\_free()}}
{\footnotesize\ttfamily void eina\+\_\+simple\+\_\+xml\+\_\+attribute\+\_\+free (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct__Eina__Simple__XML__Attribute}{Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Attribute}} $\ast$}]{attr }\end{DoxyParamCaption})}



Removes attribute from parent and deletes it. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em attr} & attribute to release memory. \\
\hline
\end{DoxyParams}


References EINA\+\_\+\+INLIST\+\_\+\+GET, eina\+\_\+inlist\+\_\+remove(), EINA\+\_\+\+MAGIC\+\_\+\+NONE, EINA\+\_\+\+MAGIC\+\_\+\+SET, eina\+\_\+mempool\+\_\+free(), and eina\+\_\+stringshare\+\_\+del().

\mbox{\Hypertarget{group__Eina__Simple__XML__Group_gaafc15b5366df6323b0c2b45d666227ff}\label{group__Eina__Simple__XML__Group_gaafc15b5366df6323b0c2b45d666227ff}} 
\index{Simple\_XML@{Simple\_XML}!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\_XML@{Simple\_XML}}
\doxysubsubsection{\texorpdfstring{eina\_simple\_xml\_node\_tag\_new()}{eina\_simple\_xml\_node\_tag\_new()}}
{\footnotesize\ttfamily \mbox{\hyperlink{struct__Eina__Simple__XML__Node__Tag}{Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Tag}}$\ast$ eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+tag\+\_\+new (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct__Eina__Simple__XML__Node__Tag}{Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Tag}} $\ast$}]{parent,  }\item[{const char $\ast$}]{name }\end{DoxyParamCaption})}



Creates new tag. 

If parent is provided, it is automatically appended.


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


References EINA\+\_\+\+MAGIC\+\_\+\+SET, eina\+\_\+mempool\+\_\+malloc(), and ERR.

\mbox{\Hypertarget{group__Eina__Simple__XML__Group_ga6003d52b4332f185c54330ea2ad1f015}\label{group__Eina__Simple__XML__Group_ga6003d52b4332f185c54330ea2ad1f015}} 
\index{Simple\_XML@{Simple\_XML}!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\_XML@{Simple\_XML}}
\doxysubsubsection{\texorpdfstring{eina\_simple\_xml\_node\_tag\_free()}{eina\_simple\_xml\_node\_tag\_free()}}
{\footnotesize\ttfamily void eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+tag\+\_\+free (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct__Eina__Simple__XML__Node__Tag}{Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Tag}} $\ast$}]{tag }\end{DoxyParamCaption})}



Removes tag from parent and deletes it. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em tag} & to release memory. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group__Eina__Simple__XML__Group_ga4cbaf18751397d210af06fe926834fcf}\label{group__Eina__Simple__XML__Group_ga4cbaf18751397d210af06fe926834fcf}} 
\index{Simple\_XML@{Simple\_XML}!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\_XML@{Simple\_XML}}
\doxysubsubsection{\texorpdfstring{eina\_simple\_xml\_node\_data\_new()}{eina\_simple\_xml\_node\_data\_new()}}
{\footnotesize\ttfamily \mbox{\hyperlink{struct__Eina__Simple__XML__Node__Data}{Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Data}}$\ast$ eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+data\+\_\+new (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct__Eina__Simple__XML__Node__Tag}{Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Tag}} $\ast$}]{parent,  }\item[{const char $\ast$}]{contents,  }\item[{size\+\_\+t}]{length }\end{DoxyParamCaption})}



Creates new data. 

If parent is provided, it is automatically appended.


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in,out}}  & {\em parent} & If provided, will be set in the resulting structure as well as the data will be appended to children list. \\
\hline
\mbox{\texttt{ in}}  & {\em contents} & String to be used. Must not be {\ttfamily NULL}. \\
\hline
\mbox{\texttt{ in}}  & {\em length} & Size in bytes of {\itshape contents}.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Newly allocated memory or NULL on error. This memory should be released with \mbox{\hyperlink{group__Eina__Simple__XML__Group_ga77f49d08b327742794ed51808b32a5ef}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+data\+\_\+free()}} or indirectly with \mbox{\hyperlink{group__Eina__Simple__XML__Group_ga6003d52b4332f185c54330ea2ad1f015}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+tag\+\_\+free()}} of the parent. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__Eina__Simple__XML__Group_ga77f49d08b327742794ed51808b32a5ef}\label{group__Eina__Simple__XML__Group_ga77f49d08b327742794ed51808b32a5ef}} 
\index{Simple\_XML@{Simple\_XML}!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\_XML@{Simple\_XML}}
\doxysubsubsection{\texorpdfstring{eina\_simple\_xml\_node\_data\_free()}{eina\_simple\_xml\_node\_data\_free()}}
{\footnotesize\ttfamily void eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+data\+\_\+free (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct__Eina__Simple__XML__Node__Data}{Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Data}} $\ast$}]{node }\end{DoxyParamCaption})}



Removes data from parent and deletes it. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em node} & to release memory. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group__Eina__Simple__XML__Group_ga26d9042354095f18f73c68bba96451a3}\label{group__Eina__Simple__XML__Group_ga26d9042354095f18f73c68bba96451a3}} 
\index{Simple\_XML@{Simple\_XML}!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\_XML@{Simple\_XML}}
\doxysubsubsection{\texorpdfstring{eina\_simple\_xml\_node\_cdata\_new()}{eina\_simple\_xml\_node\_cdata\_new()}}
{\footnotesize\ttfamily \mbox{\hyperlink{struct__Eina__Simple__XML__Node__Data}{Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+CData}}$\ast$ eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+cdata\+\_\+new (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct__Eina__Simple__XML__Node__Tag}{Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Tag}} $\ast$}]{parent,  }\item[{const char $\ast$}]{contents,  }\item[{size\+\_\+t}]{length }\end{DoxyParamCaption})}



Creates new cdata. 

If parent is provided, it is automatically appended.


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in,out}}  & {\em parent} & If provided, will be set in the resulting structure as well as the cdata will be appended to children list. \\
\hline
\mbox{\texttt{ in}}  & {\em contents} & String to be used. Must not be {\ttfamily NULL}. \\
\hline
\mbox{\texttt{ in}}  & {\em length} & Size in bytes of {\itshape content}.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Newly allocated memory or {\ttfamily NULL} on error. This memory should be released with \mbox{\hyperlink{group__Eina__Simple__XML__Group_ga1022092edff13037fbfb19041659c569}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+cdata\+\_\+free()}} or indirectly with \mbox{\hyperlink{group__Eina__Simple__XML__Group_ga6003d52b4332f185c54330ea2ad1f015}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+tag\+\_\+free()}} of the parent. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__Eina__Simple__XML__Group_ga1022092edff13037fbfb19041659c569}\label{group__Eina__Simple__XML__Group_ga1022092edff13037fbfb19041659c569}} 
\index{Simple\_XML@{Simple\_XML}!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\_XML@{Simple\_XML}}
\doxysubsubsection{\texorpdfstring{eina\_simple\_xml\_node\_cdata\_free()}{eina\_simple\_xml\_node\_cdata\_free()}}
{\footnotesize\ttfamily void eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+cdata\+\_\+free (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct__Eina__Simple__XML__Node__Data}{Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Data}} $\ast$}]{node }\end{DoxyParamCaption})}



Removes cdata from parent and deletes it. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em node} & to release memory. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group__Eina__Simple__XML__Group_ga97aeaa645f690d0984346c4cfbafb79b}\label{group__Eina__Simple__XML__Group_ga97aeaa645f690d0984346c4cfbafb79b}} 
\index{Simple\_XML@{Simple\_XML}!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\_XML@{Simple\_XML}}
\doxysubsubsection{\texorpdfstring{eina\_simple\_xml\_node\_doctype\_child\_new()}{eina\_simple\_xml\_node\_doctype\_child\_new()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Simple__XML__Group_ga05c86d915850a2446d325ba2d6cf8063}{Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Doctype\+\_\+\+Child}}$\ast$ eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+doctype\+\_\+child\+\_\+new (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct__Eina__Simple__XML__Node__Tag}{Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Tag}} $\ast$}]{parent,  }\item[{const char $\ast$}]{contents,  }\item[{size\+\_\+t}]{length }\end{DoxyParamCaption})}



Creates new doctype child. 

If parent is provided, it is automatically appended.


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in,out}}  & {\em parent} & If provided, will be set in the resulting structure as well as the doctype child will be appended to children list. \\
\hline
\mbox{\texttt{ in}}  & {\em contents} & String to be used. Must not be {\ttfamily NULL}. \\
\hline
\mbox{\texttt{ in}}  & {\em length} & size in bytes of {\itshape content}.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Newly allocated memory or {\ttfamily NULL} on error. This memory should be released with \mbox{\hyperlink{group__Eina__Simple__XML__Group_gadf9f79006304cd74f4034b0f7bf8fe29}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+doctype\+\_\+child\+\_\+free()}} or indirectly with \mbox{\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 EINA\+\_\+\+SIMPLE\+\_\+\+XML\+\_\+\+NODE\+\_\+\+DOCTYPE\+\_\+\+CHILD.

\mbox{\Hypertarget{group__Eina__Simple__XML__Group_gadf9f79006304cd74f4034b0f7bf8fe29}\label{group__Eina__Simple__XML__Group_gadf9f79006304cd74f4034b0f7bf8fe29}} 
\index{Simple\_XML@{Simple\_XML}!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\_XML@{Simple\_XML}}
\doxysubsubsection{\texorpdfstring{eina\_simple\_xml\_node\_doctype\_child\_free()}{eina\_simple\_xml\_node\_doctype\_child\_free()}}
{\footnotesize\ttfamily void eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+doctype\+\_\+child\+\_\+free (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct__Eina__Simple__XML__Node__Data}{Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Data}} $\ast$}]{node }\end{DoxyParamCaption})}



Removes doctype child from parent and deletes it. 


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


References EINA\+\_\+\+SIMPLE\+\_\+\+XML\+\_\+\+NODE\+\_\+\+DOCTYPE\+\_\+\+CHILD, and ERR.

\mbox{\Hypertarget{group__Eina__Simple__XML__Group_gad4456701e722807c5a98716932f5959a}\label{group__Eina__Simple__XML__Group_gad4456701e722807c5a98716932f5959a}} 
\index{Simple\_XML@{Simple\_XML}!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\_XML@{Simple\_XML}}
\doxysubsubsection{\texorpdfstring{eina\_simple\_xml\_node\_processing\_new()}{eina\_simple\_xml\_node\_processing\_new()}}
{\footnotesize\ttfamily \mbox{\hyperlink{struct__Eina__Simple__XML__Node__Data}{Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Processing}}$\ast$ eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+processing\+\_\+new (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct__Eina__Simple__XML__Node__Tag}{Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Tag}} $\ast$}]{parent,  }\item[{const char $\ast$}]{contents,  }\item[{size\+\_\+t}]{length }\end{DoxyParamCaption})}



Creates new processing. 

If parent is provided, it is automatically appended.


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in,out}}  & {\em parent} & If provided, will be set in the resulting structure as well as the processing will be appended to children list. \\
\hline
\mbox{\texttt{ in}}  & {\em contents} & String to be used. Must not be {\ttfamily NULL}. \\
\hline
\mbox{\texttt{ in}}  & {\em length} & Size in bytes of {\itshape contents}.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Newly allocated memory or {\ttfamily NULL} on error. This memory should be released with \mbox{\hyperlink{group__Eina__Simple__XML__Group_ga829c71d5d81a964d2707dccba7a1a35a}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+processing\+\_\+free()}} or indirectly with \mbox{\hyperlink{group__Eina__Simple__XML__Group_ga6003d52b4332f185c54330ea2ad1f015}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+tag\+\_\+free()}} of the parent. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__Eina__Simple__XML__Group_ga829c71d5d81a964d2707dccba7a1a35a}\label{group__Eina__Simple__XML__Group_ga829c71d5d81a964d2707dccba7a1a35a}} 
\index{Simple\_XML@{Simple\_XML}!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\_XML@{Simple\_XML}}
\doxysubsubsection{\texorpdfstring{eina\_simple\_xml\_node\_processing\_free()}{eina\_simple\_xml\_node\_processing\_free()}}
{\footnotesize\ttfamily void eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+processing\+\_\+free (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct__Eina__Simple__XML__Node__Data}{Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Data}} $\ast$}]{node }\end{DoxyParamCaption})}



Removes processing from parent and deletes it. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em node} & processing to release memory. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group__Eina__Simple__XML__Group_ga0d3dd88fa214c1a79c4e1928bcf92474}\label{group__Eina__Simple__XML__Group_ga0d3dd88fa214c1a79c4e1928bcf92474}} 
\index{Simple\_XML@{Simple\_XML}!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\_XML@{Simple\_XML}}
\doxysubsubsection{\texorpdfstring{eina\_simple\_xml\_node\_doctype\_new()}{eina\_simple\_xml\_node\_doctype\_new()}}
{\footnotesize\ttfamily \mbox{\hyperlink{struct__Eina__Simple__XML__Node__Data}{Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Doctype}}$\ast$ eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+doctype\+\_\+new (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct__Eina__Simple__XML__Node__Tag}{Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Tag}} $\ast$}]{parent,  }\item[{const char $\ast$}]{contents,  }\item[{size\+\_\+t}]{length }\end{DoxyParamCaption})}



Creates new doctype. 

If parent is provided, it is automatically appended.


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in,out}}  & {\em parent} & If provided, will be set in the resulting structure as well as the doctype will be appended to children list. \\
\hline
\mbox{\texttt{ in}}  & {\em contents} & String to be used. Must not be {\ttfamily NULL}. \\
\hline
\mbox{\texttt{ in}}  & {\em length} & Size in bytes of {\itshape contents}.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Newly allocated memory or {\ttfamily NULL} on error. This memory should be released with \mbox{\hyperlink{group__Eina__Simple__XML__Group_gae48688ad88ea2b6a48e4155073c24082}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+doctype\+\_\+free()}} or indirectly with \mbox{\hyperlink{group__Eina__Simple__XML__Group_ga6003d52b4332f185c54330ea2ad1f015}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+tag\+\_\+free()}} of the parent. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__Eina__Simple__XML__Group_gae48688ad88ea2b6a48e4155073c24082}\label{group__Eina__Simple__XML__Group_gae48688ad88ea2b6a48e4155073c24082}} 
\index{Simple\_XML@{Simple\_XML}!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\_XML@{Simple\_XML}}
\doxysubsubsection{\texorpdfstring{eina\_simple\_xml\_node\_doctype\_free()}{eina\_simple\_xml\_node\_doctype\_free()}}
{\footnotesize\ttfamily void eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+doctype\+\_\+free (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct__Eina__Simple__XML__Node__Data}{Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Data}} $\ast$}]{node }\end{DoxyParamCaption})}



Removes doctype from parent and deletes it. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em node} & doctype to release memory. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group__Eina__Simple__XML__Group_ga49cedf672a9d4c3580fa2399d664b717}\label{group__Eina__Simple__XML__Group_ga49cedf672a9d4c3580fa2399d664b717}} 
\index{Simple\_XML@{Simple\_XML}!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\_XML@{Simple\_XML}}
\doxysubsubsection{\texorpdfstring{eina\_simple\_xml\_node\_comment\_new()}{eina\_simple\_xml\_node\_comment\_new()}}
{\footnotesize\ttfamily \mbox{\hyperlink{struct__Eina__Simple__XML__Node__Data}{Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Comment}}$\ast$ eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+comment\+\_\+new (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct__Eina__Simple__XML__Node__Tag}{Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Tag}} $\ast$}]{parent,  }\item[{const char $\ast$}]{contents,  }\item[{size\+\_\+t}]{length }\end{DoxyParamCaption})}



Creates new comment. 

If parent is provided, it is automatically appended.


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in,out}}  & {\em parent} & If provided, will be set in the resulting structure as well as the comment will be appended to children list. \\
\hline
\mbox{\texttt{ in}}  & {\em contents} & String to be used. Must not be {\ttfamily NULL}. \\
\hline
\mbox{\texttt{ in}}  & {\em length} & Size in bytes of {\itshape contents}.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Newly allocated memory or {\ttfamily NULL} on error. This memory should be released with \mbox{\hyperlink{group__Eina__Simple__XML__Group_ga5069d4f73643dec2e326ead6658a7456}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+comment\+\_\+free()}} or indirectly with \mbox{\hyperlink{group__Eina__Simple__XML__Group_ga6003d52b4332f185c54330ea2ad1f015}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+tag\+\_\+free()}} of the parent. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__Eina__Simple__XML__Group_ga5069d4f73643dec2e326ead6658a7456}\label{group__Eina__Simple__XML__Group_ga5069d4f73643dec2e326ead6658a7456}} 
\index{Simple\_XML@{Simple\_XML}!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\_XML@{Simple\_XML}}
\doxysubsubsection{\texorpdfstring{eina\_simple\_xml\_node\_comment\_free()}{eina\_simple\_xml\_node\_comment\_free()}}
{\footnotesize\ttfamily void eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+comment\+\_\+free (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct__Eina__Simple__XML__Node__Data}{Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Data}} $\ast$}]{node }\end{DoxyParamCaption})}



Removes comment from parent and deletes it. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em node} & comment to release memory. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group__Eina__Simple__XML__Group_gadc951418424b679ea32ba63492894fe3}\label{group__Eina__Simple__XML__Group_gadc951418424b679ea32ba63492894fe3}} 
\index{Simple\_XML@{Simple\_XML}!eina\_simple\_xml\_node\_load@{eina\_simple\_xml\_node\_load}}
\index{eina\_simple\_xml\_node\_load@{eina\_simple\_xml\_node\_load}!Simple\_XML@{Simple\_XML}}
\doxysubsubsection{\texorpdfstring{eina\_simple\_xml\_node\_load()}{eina\_simple\_xml\_node\_load()}}
{\footnotesize\ttfamily \mbox{\hyperlink{struct__Eina__Simple__XML__Node__Tag}{Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Root}}$\ast$ eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+load (\begin{DoxyParamCaption}\item[{const char $\ast$}]{buf,  }\item[{unsigned}]{buflen,  }\item[{\mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}}}]{strip }\end{DoxyParamCaption})}



Loads a XML node tree based on the given string. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em buf} & The input string. May not contain \textbackslash{}0 terminator. \\
\hline
\mbox{\texttt{ in}}  & {\em buflen} & The input string size. \\
\hline
\mbox{\texttt{ in}}  & {\em strip} & Whenever this parser should strip leading and trailing whitespace.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Document root with children tags, or {\ttfamily NULL} on errors. Document with errors may return partial tree instead of {\ttfamily NULL}, we\textquotesingle{}ll do our best to avoid returning nothing. 
\end{DoxyReturn}


References EINA\+\_\+\+MAGIC\+\_\+\+SET, and eina\+\_\+mempool\+\_\+malloc().

\mbox{\Hypertarget{group__Eina__Simple__XML__Group_ga10bd106664ae8ca34a49fd621fee9dbc}\label{group__Eina__Simple__XML__Group_ga10bd106664ae8ca34a49fd621fee9dbc}} 
\index{Simple\_XML@{Simple\_XML}!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\_XML@{Simple\_XML}}
\doxysubsubsection{\texorpdfstring{eina\_simple\_xml\_node\_root\_free()}{eina\_simple\_xml\_node\_root\_free()}}
{\footnotesize\ttfamily void eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+root\+\_\+free (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct__Eina__Simple__XML__Node__Tag}{Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node\+\_\+\+Root}} $\ast$}]{root }\end{DoxyParamCaption})}



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


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em root} & Memory returned by \mbox{\hyperlink{group__Eina__Simple__XML__Group_gadc951418424b679ea32ba63492894fe3}{eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+load()}} \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group__Eina__Simple__XML__Group_ga212ed77de0d04140f24e69d8a1da84a7}\label{group__Eina__Simple__XML__Group_ga212ed77de0d04140f24e69d8a1da84a7}} 
\index{Simple\_XML@{Simple\_XML}!eina\_simple\_xml\_node\_dump@{eina\_simple\_xml\_node\_dump}}
\index{eina\_simple\_xml\_node\_dump@{eina\_simple\_xml\_node\_dump}!Simple\_XML@{Simple\_XML}}
\doxysubsubsection{\texorpdfstring{eina\_simple\_xml\_node\_dump()}{eina\_simple\_xml\_node\_dump()}}
{\footnotesize\ttfamily char$\ast$ eina\+\_\+simple\+\_\+xml\+\_\+node\+\_\+dump (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct__Eina__Simple__XML__Node}{Eina\+\_\+\+Simple\+\_\+\+XML\+\_\+\+Node}} $\ast$}]{node,  }\item[{const char $\ast$}]{indent }\end{DoxyParamCaption})}



Converts the node tree under the given element to a XML string. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in,out}}  & {\em node} & The base node to convert. \\
\hline
\mbox{\texttt{ in}}  & {\em indent} & Indentation string, or {\ttfamily NULL} to disable it.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily NULL} on errors, or a newly allocated string on success. 
\end{DoxyReturn}


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

