16. lipnja, nakon gotovo godinu i pol dana razvoja, objavljen je 1.16 pugixml — brza cross-platform biblioteka za parsiranje i obradu XML-a (MIT licenca).
Biblioteka pruža DOM-sličan interfejs s mogućnostima prolaska kroz čvorove dokumenta i njihovih izmjena. Također podržava XPath 1.0 i potpunu podršku za Unicode (UTF-8, UTF-16 (BE/LE), UTF-32 (BE/LE) i UCS-2), uz automatsko pretvaranje kodiranja.
Podržava korištenje bez standardne biblioteke i izuzetaka C++, te režim "samo zaglavlja".
Ovo je jubilejna verzija — ove godine projekt puni 20 godina! Više o povijesti stvaranja i razvoja biblioteke možete pročitati na pugixml.org, GitHub ili u prvoj verziji vijesti.
- Promjene ponašanja
- elementi s jednim praznim podčvorom PCDATA sada se prikazuju s praznim oznakama (s obzirom na parametar format_no_empty_element_tags).
- Poboljšanja
- dodana opcija PUGIXML_CHARCONV_FLOAT za pretvaranje brojeva s pomičnom decimalnom točkom, koristeći ; za to je potreban C++17, što čini pretvorbe neovisnima o lokalitetu i može poboljšati performanse;
- dodane funkcije xml_node::ensure_child i xml_node::ensure_attribute, koje vraćaju podčvor ili atribut s navedenim imenom, dodajući ga ako je nedostajao;
- poboljšana performansa pretrage čvorova i atributa po imenu;
- učitavanje dokumenta iz praznog bafer ne rezultira više alokacijom memorije.
- Poboljšanja XPath-a
- poboljšana performansa upita u kojima se vrši izračun ili usporedba vrijednosti atributa, kao što je @attr > 5;
- poboljšana performansa upita koji biraju čvorove i atribute po imenu.
- Ispravke grešaka
- ispravljena prekomjerna dubina stoga prilikom uklanjanja podstabala s vrlo dubokim razinama ugniježdenja;
- ispravljene cijelobrojne prekomjerne vrijednosti koje su mogle uzrokovati padove prilikom učitavanja vrlo velikih (> 1 GB) dokumenata na 32-bitnim platformama u režimu PUGIXML_WCHAR_MODE;
- ispravljena greška dereferenciranja nultog pokazivača prilikom kopiranja objekata xpath_variable_set s string varijablama bez dodijeljenih vrijednosti.
- Poboljšanja podrške za CMake
- poboljšana podrška za opciju PUGIXML_BUILD_APPLE_FRAMEWORK;
- dodana CMake opcija PUGIXML_INSTALL_SOURCE za instalaciju pugixml.cpp (korisno u režimu "samo zaglavlja").
- Poboljšanja kompatibilnosti
- dodani su datoteke projekta i NuGet paketi za Visual Studio 2026;
- riješen je problem kompatibilnosti s C++20 modulima prilikom uključivanja datoteke pugixml.hpp u globalni modul;
- riješena su upozorenja Clang i GCC -Wextra-semi-stmt, -Wsign-conversion i -Wuninitialized (GCC 16);
- riješena je greška pri kompilaciji s Embarcadero C++ XE5;
- uklonjena su neka lažna uzbunjivanja statičke analize.
Izvor: linux.org.ru




