Hello everyone,
how is it possible to parse a XML file cyclical with the libxml Parser in a service App ( app for wearable, Gear S3 with Tizen 2.3.2)?
The service app shall cyclical parse an xml file and inform the user if the content of the xml file has changed.
I know that ecore_timer_add function can be used to invoke functions cyclical, but this only works if the function to be called by the ecore_timer is an Eina_Bool function.
I also know that the alarm API can be used to launch an application, e.g. I could set an Alarm in the UI-application to launch the service app frequently.
But both of these options couldn´t help me so far, because:
1. If the service gets constantly new launched, all data is lost, and I can´t compare if the information from the XML file changed from the previous File parsing.
2. And the libxml Parser is a void function, so I can´t think of a possibility to use Ecore_Timer
void getParsedData(xmlNode * a_node, appdata_s *ad) {
xmlNode *cur_node = NULL;
xmlChar *value = NULL;
for (cur_node = a_node; cur_node; cur_node = cur_node->next) {
if (!strcmp((const char*) cur_node->name, "tag"))
ad->value_type = 1;
if (!strcmp((const char*) cur_node->name, "price"))
ad->value_type = 2;
if (!strcmp((const char*) cur_node->name, "text")) {
if (ad->value_type == 1) {
value = cur_node->content;
strcat(ad->buffer, "Name : ");
strcat(ad->buffer, (char*) value);
strcat(ad->buffer, "<br/>");
dlog_print(DLOG_DEBUG, "GG", "%s\n", ad->buffer);
ad->value_type = 0;
} else if (ad->value_type == 2) {
value = cur_node->content;
strcat(ad->buffer, " Price : ");
strcat(ad->buffer, (char*) value);
strcat(ad->buffer, "<br/>");
ad->value_type = 0;
}
}
getParsedData(cur_node->children, ad);
}
}