pugixml 1.16









16. června, po téměř roce a půl vývoje, byl vydán 1.16 pugixml — rychlá multiplatformní knihovna pro parsování a zpracování XML (MIT licence).

Knihovna poskytuje DOM-podobné rozhraní s možnostmi procházení uzlů dokumentu a jejich úpravy. Také podporuje XPath 1.0 a plnou podporu Unicode (UTF-8, UTF-16 (BE/LE), UTF-32 (BE/LE) a UCS-2), s automatickou konverzí kódování.

Podporuje použití bez standardní knihovny a výjimek C++, a režim „pouze hlavičkové soubory“.

Toto je jubilejní vydání — letos projektu oslaví 20 let! Další informace o historii vzniku a vývoje knihovny můžete přečíst na pugixml.org, GitHub nebo v prvním vydání zprávy.

  • Změny chování
    • prvky s jedním prázdným podřízeným prvkem PCDATA jsou nyní generovány s prázdnými značkami (pokud není použit parametr format_no_empty_element_tags).
  • Vylepšení
    • byla přidána možnost PUGIXML_CHARCONV_FLOAT pro konverzi čísel s plovoucí desetinnou čárkou pomocí ; to vyžaduje C++17, což činí konverze nezávislými na lokalitě a může zlepšit výkon;
    • byly přidány funkce xml_node::ensure_child a xml_node::ensure_attribute, které vracejí podřízený prvek nebo atribut se zadaným názvem, přičemž jej přidají, pokud chybí;
    • byl vylepšen výkon při vyhledávání uzlů a atributů podle jména;
    • načítání dokumentu z prázdného bufferu již nevede k alokaci paměti.
  • Vylepšení XPath
    • byl vylepšen výkon dotazů, které zahrnují výpočet nebo porovnání hodnot atributů, například @attr > 5;
    • byl vylepšen výkon dotazů, které vybírají uzly a atributy podle jména.
  • Opravy chyb
    • bylo opraveno přetečení zásobníku při odstraňování podstromů s velmi hlubokou úrovní zanoření;
    • byly opraveny celáčové přetečení, která mohla způsobit selhání při načítání velmi velkých (> 1GB) dokumentů na 32bitových platformách v režimu PUGIXML_WCHAR_MODE;
    • byla opravena chyba dereference nulového ukazatele při kopírování objektů xpath_variable_set se řetězcovými proměnnými s nepridělenými hodnotami.
  • Vylepšení podpory CMake
    • byla vylepšena podpora možnosti PUGIXML_BUILD_APPLE_FRAMEWORK;
    • byla přidána možnost CMake PUGIXML_INSTALL_SOURCE pro instalaci pugixml.cpp (užitečné při práci v režimu „pouze hlavičky“).
  • Vylepšení kompatibility
    • byly přidány soubory projektu a balíčky NuGet pro Visual Studio 2026;
    • byl vyřešen problém s kompatibilitou s moduly C++20 při zahrnutí souboru pugixml.hpp do fragmentu globálního modulu;
    • byla opravena varování Clang a GCC -Wextra-semi-stmt, -Wsign-conversion a -Wuninitialized (GCC 16);
    • byla opravena chyba kompilace s Embarcadero C++ XE5;
    • bylo odstraněno několik falešných pozitiv při statické analýze.

Zdroj: linux.org.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster