16. júna, po takmer 18 mesiacoch vývoja, bol vydaný 1.16 pugixml — rýchla multiplatformová knižnica na parsovanie a spracovanie XML (licencia MIT).
Knižnica poskytuje rozhranie podobné DOM s možnosťami prechádzania uzlov dokumentu a ich zmien. Tiež podporuje XPath 1.0 a plnú podporu Unicode (UTF-8, UTF-16 (BE/LE), UTF-32 (BE/LE) a UCS-2), s automatickým prevodom kódovaní.
Podporuje použitie bez štandardnej knižnice a výnimiek C++, ako aj režim „iba hlavičkové súbory“.
Toto je výročné vydanie — tento rok oslávi projekt 20 rokov! Viac o histórii vytvorenia a rozvoja knižnice si môžete prečítať na pugixml.org, GitHub alebo v prvej edícii správy.
- Zmeny správania
- prvky s jedným prázdnym potomkom PCDATA sa teraz zobrazujú s prázdnymi značkami (ak nie je použitý parameter format_no_empty_element_tags).
- Vylepšenia
- bola pridaná voľba PUGIXML_CHARCONV_FLOAT na prevod čísel s pohyblivou desatinnou čiarou pomocou ; na to sa vyžaduje C++17, čo robí prevody nezávislými od lokality a môže zvýšiť výkonnosť;
- pridané funkcie xml_node::ensure_child a xml_node::ensure_attribute, ktoré vracajú podriadený element alebo atribút s uvedeným menom, pričom ho pridávajú, ak chýba;
- zvýšená výkonnosť vyhľadávania uzlov a atribútov podľa mena;
- načítanie dokumentu z prázdneho vyrovnávacej pamäte už neviedlo k alokácii pamäte.
- Vylepšenia XPath
- zvýšená výkonnosť dotazov, pri ktorých sa vykonáva výpočtovanie alebo porovnávanie hodnôt atribútov, napr. @attr > 5;
- zvýšená výkonnosť dotazov, ktoré vyberajú uzly a atribúty podľa mena.
- Opravy chýb
- opravené pretekanie zásobníka pri odstraňovaní podstromov s veľmi hlbokou úrovňou vnorenia;
- opravené celočíselné pretekania, ktoré mohli viesť k zlyhaniam pri načítaní veľmi veľkých (> 1GB) dokumentov na 32-bitových platformách v móde PUGIXML_WCHAR_MODE;
- opravená chyba dereferencovania nulového ukazovateľa pri kopírovaní objektov xpath_variable_set so reťazcovými premennými bez priradených hodnôt.
- Vylepšenia podpory CMake
- vylepšená podpora voľby PUGIXML_BUILD_APPLE_FRAMEWORK;
- pridaná voľba CMake PUGIXML_INSTALL_SOURCE na inštaláciu pugixml.cpp (užitočné pri práci v režime „iba hlavičky“).
- Vylepšenia kompatibility
- pridané súbory projektu a balíky NuGet pre Visual Studio 2026;
- opravený problém s kompatibilitou s modulmi C++20 pri zahrnutí súboru pugixml.hpp do fragmentu globálneho modulu;
- opravené varovania Clang a GCC -Wextra-semi-stmt, -Wsign-conversion a -Wuninitialized (GCC 16);
- opravená chyba pri kompilácii s Embarcadero C++ XE5;
- odstránených niekoľko falošných pozitív statickej analýzy.
Zdroj: linux.org.ru




