16. juuni, pärast peaaegu poolteist aastat arendust, tuli välja versioon 1.16 pugixml — kiiruselt ja platvormidevaheline raamatukogu XML-i parsimiseks ja töötlemiseks (MIT litsents).
Raamatukogu pakub DOM-sarnast liidest dokumentide sõlmede sirvimiseks ja nende muutmiseks. Samuti toetab see XPath 1.0 ja täielikku Unicode'i tuge (UTF-8, UTF-16 (BE/LE), UTF-32 (BE/LE) ja UCS-2), automaatse kodeeringu konversiooniga.
Toetatakse kasutamist ilma standardse C++ teegita ja eranditeta, samuti „ainult pealkirjade” režiim.
See on juubeliväljaanne — sel aastal täitub projektil 20 aastat! Täiendavat teavet raamatukogu ajaloo ja arengu kohta saab lugeda pugixml.org, GitHub või esimeses uudise väljaandes.
- Käitumise muutused
- elemendid, millel on üks tühi alam-element PCDATA, väljastatakse nüüd tühjade siltidega (kui parameetrit format_no_empty_element_tags ei kasutata).
- Parandused
- lisatud on valik PUGIXML_CHARCONV_FLOAT ujukomaga numbrite teisendamiseks, kasutades ; selleks on vajalik C++17, mistõttu teostused on sõltumatud lokaalist ja võivad parandada jõudlust;
- lisatud xml_node::ensure_child ja xml_node::ensure_attribute funktsioonid, mis tagastavad nimega alamelemendi või atribuudi, lisades selle, kui see puudub;
- parandatud sõlmede ja atribuutide otsimise jõudlust nime järgi;
- dokumendi laadimine tühi salvestusse ei pruugi enam mälu eraldada.
- XPath'i parendused
- parandatud päringute jõudlust, kus arvutatakse või võrreldakse atribuutide väärtusi, näiteks @attr > 5;
- parandatud sõlmede ja atribuutide valimise jõudlust nime järgi.
- Veaparandused
- parandatud virna ülevool, kui eemaldatakse alampuud, millel on väga sügavad tasemed;
- parandatud täisarvude ülevoolud, mis võisid põhjustada tõrkeid väga suurte (> 1GB) dokumentide laadimisel 32-bitistes platvormides PUGIXML_WCHAR_MODE režiimis;
- parandatud nullviideti dereferentseerimise viga xpath_variable_set objekti kopeerimisel stringimuutujatega, mille väärtused on määramata.
- CMake'i toetamiste parendused
- parandatud PUGIXML_BUILD_APPLE_FRAMEWORK valiku tugi;
- lisatud CMake'i valik PUGIXML_INSTALL_SOURCE pugixml.cpp installimiseks (kasulik 'ainult peade' režiimis töötamisel).
- Ühendatavuse täiustused
- projektifailid ja NuGet paketid on lisatud Visual Studio 2026 jaoks;
- C++20 moodulite ühilduvuse probleem on lahendatud, kui pugixml.hpp faili kaetakse globaalsete moodulite fragmentides;
- Clangi ja GCC -Wextra-semi-stmt, -Wsign-conversion ja -Wuninitialized (GCC 16) hoiatuste probleemid on lahendatud;
- kompileerimisviga Embarcadero C++ XE5-ga on lahendatud;
- mitmed valehäired staatilises analüüsis on kõrvaldatud.
Allikas: linux.org.ru




