16. junija, po skoraj poltretjem letu razvoja, je izšla različica 1.16 pugixml — hitre večplatformne knjižnice za analiziranje in obdelavo XML (licenca MIT).
Knjižnica ponuja DOM-podobno vmesnik z zmožnostmi prehajanja med vozli dokumenta in njihovih sprememb. Prav tako podpira XPath 1.0 in popolno podporo Unicode (UTF-8, UTF-16 (BE/LE), UTF-32 (BE/LE) in UCS-2), s samodejnim pretvorbo kodiranja.
Podprta je uporaba brez standardne knjižnice in C++ izjem ter način 'samo glave'.
To je jubilejna izdaja — letos bo projektu 20 let! Več o zgodovini ustvarjanja in razvoja knjižnice lahko preberete na pugixml.org, GitHub ali v prvi različici novice.
- Spremembe obnašanja
- elementi z enim praznim podrejenim elementom PCDATA se zdaj izpisujejo s praznimi oznakami (če se ne uporablja parameter format_no_empty_element_tags).
- Izboljšave
- dodana je bila možnost PUGIXML_CHARCONV_FLOAT za pretvorbo števil s plavajočo vejico, ki uporablja ; za to je potreben C++17, kar naredi pretvorbe neodvisne od lokalitete in lahko izboljša zmogljivost;
- dodane so funkcije xml_node::ensure_child in xml_node::ensure_attribute, ki vračata podrejeni element ali atribut z navedenim imenom, pri čemer ga dodata, če manjkajo;
- izboljšana je bila zmogljivost iskanja vozlov in atributov po imenu;
- nalaganje dokumenta iz praznega blata zdaj ne povzroča dodeljevanja pomnilnika.
- Izboljšave XPath
- izboljšana je bila zmogljivost poizvedb, pri katerih se izvaja izračun ali primerjava vrednosti atributov, na primer @attr > 5;
- izboljšana je bila zmogljivost poizvedb, ki izbirajo vozle in atribute po imenu.
- Popravki napak
- popravljeno je prelivanje sklada pri brisanju poddreves z zelo globoko stopnjo gnezdenja;
- popravljena sta celoštevilska prelivanja, ki bi lahko povzročila zrušitve pri nalaganju zelo velikih (> 1GB) dokumentov na 32-bitnih platformah v načinu PUGIXML_WCHAR_MODE;
- popravljena je napaka dereferenčenja ničelnega kazalca pri kopiranju objektov xpath_variable_set s strinjnimi spremenljivkami brez dodeljenih vrednosti.
- Izboljšave podpore za CMake
- izboljšana je bila podpora za možnost PUGIXML_BUILD_APPLE_FRAMEWORK;
- dodana je bila možnost CMake PUGIXML_INSTALL_SOURCE za namestitev pugixml.cpp (koristno pri delu v načinu 'samo glave').
- Izboljšave združljivosti
- dodani so datoteki projekta in NuGet paketi za Visual Studio 2026;
- odpravljena težava s skladnostjo z moduli C++20 pri vključitvi datoteke pugixml.hpp v fragment globalnega modula;
- odpravljena opozorila Clang in GCC -Wextra-semi-stmt, -Wsign-conversion in -Wuninitialized (GCC 16);
- odpravljena napaka pri prevajanju z Embarcadero C++ XE5;
- odpravljena je bila več lažnih zaznav statične analize.
Izvor: linux.org.ru




