#include <stdio.h>
#include <string.h>
 
static Eina_Bool _xml_attr_cb(
void *data, 
const char *key, 
const char *value);
 
static Eina_Bool _xml_tag_cb(
void *data, Eina_Simple_XML_Type type,
 
                const char *content, unsigned offset, unsigned length);
static Eina_Bool _print(
const void *container, 
void *data, 
void *fdata);
 
 
 
int
main(void)
{
   FILE *file;
   long size;
   char *buffer;
 
 
   if ((file = fopen("chat.xml", "rb")))
     {
        fseek(file, 0, SEEK_END);
        size = ftell(file);
        fseek(file, 0, SEEK_SET);
 
        if (size < 0)
          {
             return 0;
          }
 
        if ((buffer = malloc(size)))
          {
             if (fread(buffer, 1, size, file) != (unsigned long)size)
               {
               }
 
                                   _xml_tag_cb, array);
 
 
             free(buffer);
          }
        else
          {
          }
        fclose(file);
     }
   else
     {
     }
 
   return 0;
}
 
_xml_tag_cb(void *data, Eina_Simple_XML_Type type, const char *content,
{
   char buffer[length+1];
   char str[512] = {'\0'};
 
     {
        if(!strncmp("post", content, strlen("post")))
          {
                                                                    length);
                                              _xml_attr_cb, str);
          }
        else if (!strncmp("login>", content, strlen("login>")))
          {
          }
        else if (!strncmp("message>", content, strlen("message>")))
          {
          }
     }
     {
          {
          }
          {
          }
     }
 
}
 
_xml_attr_cb(void *data, const char *key, const char *value)
{
   char *str = data;
 
   if(!strcmp("id", key))
   {
      snprintf(str, sizeof(value) + 3, "(%s) ", value);
   }
 
}
 
{
   printf("%s\n", (char *)data);
 
}
static Eina_Bool eina_array_foreach(Eina_Array *array, Eina_Each_Cb cb, void *fdata)
Iterates over an array using a callback function.
static Eina_Bool eina_array_push(Eina_Array *array, const void *data)
Appends a data item to an array.
Eina_Array * eina_array_new(unsigned int step)
Creates a new array.
Definition: eina_array.c:276
void eina_array_free(Eina_Array *array)
Frees an array.
Definition: eina_array.c:295
#define EINA_LOG_ERR(fmt,...)
Logs a message with level ERROR on the default domain with the specified format.
Definition: eina_log.h:376
int eina_shutdown(void)
Shuts down the Eina library.
Definition: eina_main.c:350
int eina_init(void)
Initializes the Eina library.
Definition: eina_main.c:279
Eina_Bool eina_simple_xml_attributes_parse(const char *buf, unsigned buflen, Eina_Simple_XML_Attribute_Cb func, const void *data)
Given a buffer with xml attributes, parse them to key=value pairs.
Definition: eina_simple_xml_parser.c:501
const char * eina_simple_xml_tag_attributes_find(const char *buf, unsigned buflen)
Given the contents of a tag, find where the attributes start.
Definition: eina_simple_xml_parser.c:476
Eina_Bool eina_simple_xml_parse(const char *buf, unsigned buflen, Eina_Bool strip, Eina_Simple_XML_Cb func, const void *data)
Parses a section of XML string text.
Definition: eina_simple_xml_parser.c:284
@ EINA_SIMPLE_XML_OPEN
Definition: eina_simple_xml_parser.h:195
@ EINA_SIMPLE_XML_DATA
Definition: eina_simple_xml_parser.h:198
size_t eina_strlcat(char *dst, const char *src, size_t siz)
Appends a c-string.
Definition: eina_str.c:349
size_t eina_strlcpy(char *dst, const char *src, size_t siz)
Copies a c-string to another.
Definition: eina_str.c:317
#define EINA_TRUE
boolean value TRUE (numerical value 1)
Definition: eina_types.h:539
#define EINA_FALSE
boolean value FALSE (numerical value 0)
Definition: eina_types.h:533
unsigned char Eina_Bool
Type to mimic a boolean.
Definition: eina_types.h:527
#define EINA_UNUSED
Used to indicate that a function parameter is purposely unused.
Definition: eina_types.h:339
Type for an array of data.
Definition: eina_array.h:229