| XMLAPI XML * xml_first(XML * xml)
{
   if (xml == NULL) return NULL;
   if (xml->children == NULL) return NULL;
   return (xml->children->element);
}
XMLAPI XML * xml_firstelem(XML * xml)
{
   ELEMENTLIST *list;
   if (xml == NULL) return NULL;
   list = xml->children;
   while (list != NULL) {
      if (list->element->name != NULL) break;
      list = list->next;
   }
   if (list != NULL) return (list->element);
   return NULL;
}
XMLAPI XML * xml_last(XML *xml)
{
   if (xml == NULL) return NULL;
   if (xml->lastchild == NULL) return NULL;
   return (xml->lastchild->element);
}
XMLAPI XML * xml_lastelem(XML *xml)
{
   ELEMENTLIST *list;
   if (xml == NULL) return NULL;
   list = xml->lastchild;
   while (list != NULL) {
      if (list->element->name != NULL) break;
      list = list->prev;
   }
   if (list != NULL) return (list->element);
   return NULL;
}
 |