pugixml 1.16









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;
    • подобрена производителността на заявките, които избират възли и атрибути по име.
  • Поправки на грешки
    • отстранено преливането на стека при изтриване на подпевра с много дълбоко ниво на вложеност;
    • отстранени цели преливания, които могат да доведат до сривове при зареждане на много големи (> 1ГБ) документи на 32-битови платформи в режим PUGIXML_WCHAR_MODE;
    • отстранена грешка при разименоване на нулев указател при копиране на обекти xpath_variable_set с текстови променливи без зададени стойности.
  • Подобрения в поддръжката на CMake
    • подобренa поддръжка на опцията 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