r! = NULL)
{((! xmlStrcmp (cur-> name, (const xmlChar *) nodeName)))
{(doc, cur, curNode);
} = cur-> next;
}
}
Спочатку створюється покажчик на елемент документа і йому присвоюється значення кореневого елемента. Потім встановлюється режим дочірніх елементів і в циклі здійснюється пошук елемента, заданого другим параметром функції. При його знаходженні виконується функція parseNodes (xmlDocPtr doc, xmlNodePtr cur, char * curNode), яка і виробляє завантаження значень в таблиці стилів, ключових слів і типів. Дана функція реалізована наступним чином: parseNodes (xmlDocPtr doc, xmlNodePtr cur, char * curNode)
{* key; exit (0); = cur-> xmlChildrenNode; (cur! = NULL)
{((! xmlStrcmp (cur-> name, (const xmlChar *) curNode)))
{((! xmlStrcmp (cur-> name, (const xmlChar *) "entry")))
{(doc, cur, "Plain"); (doc, cur, "Line Comments"); (doc, cur, "Block Comments"); (doc, cur, " ; Strings "); (doc, cur," Directives "); (doc, cur," Types "); (doc, cur," Keywords ");;
} else
{= xmlNodeListGetString (doc, cur-> xmlChildrenNode, 1); (strcmp (curNode, "type") == 0)
{_types. push_back ((const char *) key);
} else
{_keywords. push_back ((const char *) key);
} (key);
}
} = cur-> next;
};
}
Ця функція складається з 2 частин: перша частина призначена для завантаження таблиці стилів, друга для завантаження ключових слів і типів. Завантаження стилів здійснюється функцією parseStyles (xmlDocPtr doc, xmlNodePtr cur, const char * name), в якій всі 7 елементів описані таким чином:
if ((! xmlStrcmp (uri, (const xmlChar *) "Plain")))
{= xmlGetProp (cur, (const xmlChar *) "color"); = xmlGetProp (cur, (const xmlChar *) "font");. color = XMLValue2FLColor (color);. font = XMLValue2FLfont (font);. size = TS; [0] = stylebuftemp;
}
Функції XMLValue2FLfont (const xmlChar * XMLvalue) і XMLValue2FLColor (const xmlChar * XMLvalue) отримують покажчик на рядок і перевіряють, чи є вона значенням FLCOLOR або FLFONT наступним чином: ((! xmlStrcmp (XMLvalue, (const xmlChar *) "FL_BLACK")))
{FL_BLACK;
}
або ((! xmlStrcmp (XMLvalue, (const xmlChar *) "FL_COURIER")))
{FL_COURIER;
}
Якщо функція parseNodes отримує покажчик на елемент, що містить значення ключових слів, то вони завантажуються в масив таким чином:
code...