6 апреля, после 20 месяцев разработки, состоялся выпуск 2.2.0 библиотеки парсинга HTML и CSS lexbor, написанной на языке C.
Что нового:
- добавлены функции клонирования узлов DOM и HTML;
- добавлена возможность переопределения функций управления памятью;
- добавлен парсинг CSS стилей, деклараций и свойств;
- для элементов HTML добавлены события вставки, удаления и уничтожения;
- добавлен парсинг стилей внутри тега
style
; - при изменении элемента его стиль вычисляется заново;
- добавлены примеры парсинга стилей.
Исправления:
- исправлена сериализация текстовых нод HTML без «родителя»;
- исправлены поиск и получение тега
title
; - исправлено добавление атрибутов для сторонних элементов HTML;
- устранены различные утечки памяти;
- исправлена возможность сборки в Windows.
Изменения:
- минимальная версия CMake — 2.8.12;
- полностью изменён подход к парсингу CSS;
- удалены файлы XCode.
Лицензия: Apache 2.0.
Сайт проекта: https://lexbor.com.
Пример использования:
#include <lexbor/html/parser.h>
#include <lexbor/dom/interfaces/element.h>
int main(int argc, const char *argv[])
{
lxb_status_t status;
const lxb_char_t *tag_name;
lxb_html_document_t *document;
static const lxb_char_t html[] = "<div>Work fine!</div>";
size_t html_len = sizeof(html) - 1;
document = lxb_html_document_create();
if (document == NULL) {
exit(EXIT_FAILURE);
}
status = lxb_html_document_parse(document, html, html_len);
if (status != LXB_STATUS_OK) {
exit(EXIT_FAILURE);
}
tag_name = lxb_dom_element_qualified_name(lxb_dom_interface_element(document->body),
NULL);
printf("Element tag name: %s\n", tag_name);
lxb_html_document_destroy(document);
return EXIT_SUCCESS;
}
Исходный текст: https://github.com/lexbor/lexbor.
>>> Подробности