Den 16 juni, efter nĂ€stan ett och ett halvt Ă„rs utveckling, slĂ€pptes version 1.16 pugixml â ett snabbt, plattformsoberoende bibliotek för parsning och bearbetning av XML (MIT-licens).
Biblioteket erbjuder ett DOM-liknande grÀnssnitt med funktioner för att traversera och modifiera dokumentets noder. XPath 1.0 stöds ocksÄ tillsammans med fullstÀndig Unicode-stöd (UTF-8, UTF-16 (BE/LE), UTF-32 (BE/LE) och UCS-2), med automatisk kodningskonvertering.
Det stöder anvÀndning utan standardbibliotek och C++-undantag, samt ett "endast headerfiler"-lÀge.
Detta Ă€r ett jubileumslĂ€pp â i Ă„r fyller projektet 20 Ă„r! Mer om bibliotekets historia och utveckling kan lĂ€sas pĂ„ pugixml.org, GitHub eller i den första versionen av nyheten.
- Ăndringar i beteende
- element med ett tomt barn-element PCDATA kommer nu att visas med tomma taggar (om inte parametern format_no_empty_element_tags anvÀnds).
- FörbÀttringar
- tillagd PUGIXML_CHARCONV_FLOAT-alternativet för att konvertera flyttal, med hjÀlp av ; detta krÀver C++17, vilket gör konverteringarna oberoende av lokal och kan förbÀttra prestanda;
- funktionerna xml_node::ensure_child och xml_node::ensure_attribute har lagts till, som returnerar ett barn-element eller attribut med angivet namn, som lÀggs till om det saknas;
- förbÀttrad prestanda för att söka noder och attribut efter namn;
- laddning av dokument frÄn en tom buffer leder inte lÀngre till minnesallokering.
- FörbÀttringar av XPath
- förbÀttrad prestanda för frÄgor som berÀknar eller jÀmför attributvÀrden, som @attr > 5;
- förbÀttrad prestanda för frÄgor som vÀljer noder och attribut efter namn.
- Buggfixar
- fixad stacköverflöd vid borttagning av undertrÀd med mycket djup inbÀddning;
- fixade heltalsöverflöden som kunde orsaka krascher vid laddning av mycket stora (> 1GB) dokument pÄ 32-bitars plattformar i PUGIXML_WCHAR_MODE;
- fixad nullpekare avmaskering vid kopiering av xpath_variable_set-objekt med strÀngvariabler som har icke tilldelade vÀrden.
- FörbÀttringar av CMake-stöd
- förbÀttrat stöd för alternativet PUGIXML_BUILD_APPLE_FRAMEWORK;
- lagt till CMake-alternativet PUGIXML_INSTALL_SOURCE för att installera pugixml.cpp (nyttigt vid arbete i "endast headerfiler"-lÀge).
- FörbÀttringar av kompatibilitet
- projektfiler och NuGet-paket för Visual Studio 2026 har lagts till;
- kompatibilitetsproblem med C++20-moduler har ÄtgÀrdats nÀr pugixml.hpp-filen inkluderas i globala modulfragmentet;
- varningar frÄn Clang och GCC -Wextra-semi-stmt, -Wsign-conversion och -Wuninitialized (GCC 16) har ÄtgÀrdats;
- kompileringsefelet med Embarcadero C++ XE5 har ÄtgÀrdats;
- flera falska positiva i statisk analys har ÄtgÀrdats.
KĂ€lla: linux.org.ru




