На 16 юни, след почти година и половина разработка, беше пусната версия 1.16 pugixml — бърза кросплатформена библиотека за парсинг и обработка на XML (лицензия MIT).

Библиотеката предлага DOM-подобен интерфейс с възможности за обход на възли и техните модификации. Също така се поддържа XPath 1.0 и пълна поддръжка на Юникод (UTF-8, UTF-16 (BE/LE), UTF-32 (BE/LE) и UCS-2), с автоматично преобразуване на кодировки.

Поддържа се използване без стандартната библиотека и C++ изключения, както и режим „само заглавни файлове“.

Това е юбилейно издание — тази година проектът ще навърши 20 години! Повече за историята на създаването и развитието на библиотеката можете да прочетете на pugixml.org, GitHub или в първото издание на новината.

  • Промени в поведението
    • елементите с един празен дъщерен елемент PCDATA сега се извеждат с празни тагове (ако параметърът format_no_empty_element_tags не се използва).
  • Подобрения
    • добавена опция PUGIXML_CHARCONV_FLOAT за преобразуване на числа с плаваща запетая, използвайки ; за това е необходимо C++17, което прави преобразуванията независими от локалността и може да увеличи производителността;
    • добавени функции xml_node::ensure_child и xml_node::ensure_attribute, които връщат дъщерен елемент или атрибут с указаното име, добавяйки го, ако го няма;
    • подобрена производителност на търсене на възли и атрибути по име;
    • зареждането на документ от празен буфер вече не води до разпределение на памет.
  • Подобрения в XPath
    • подобрена производителност на заявки, в които се извършва изчисление или сравнение на стойности на атрибути, например @attr > 5;
    • подобрена производителност на заявки, избиращи възли и атрибути по име.
  • Поправки на грешки
    • отстранено преливане на стека при изтриване на поддървета с много дълбоко ниво на вложеност;
    • отстранени целочислени преливания, които могат да водят до сривове при зареждане на много големи (> 1GB) документи на 32-битови платформи в режим PUGIXML_WCHAR_MODE;
    • отстранена грешка разыменоване на нулев указател при копиране на обекти xpath_variable_set със стрингови променливи с незададени стойности.
  • Подобрения в поддръжката на CMake
    • подобрена поддръжка на опцията PUGIXML_BUILD_APPLE_FRAMEWORK;
    • добавена опция CMake PUGIXML_INSTALL_SOURCE за инсталиране на pugixml.cpp (полезно при работа в режим „само заглавия“).
  • Подобрения в съвместимостта
    • добавени файлове на проекта и NuGet пакети за Visual Studio 2026;
    • Коригирана е проблемът с съвместимостта с модулите C++20 при включване на файла pugixml.hpp във фрагмент глобален модул;
    • Коригирани са предупрежденията Clang и GCC -Wextra-semi-stmt, -Wsign-conversion и -Wuninitialized (GCC 16);
    • Коригирана е грешката при компилация с Embarcadero C++ XE5;
    • Отстранени са няколко фалшиви срабатывания на статичния анализ.

Източник: linux.org.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster