16 qershor, pas gati njĂ« vit e gjysmĂ« zhvillimi, u lançua versioni 1.16 pugixml â njĂ« bibliotekĂ« shumĂ«platrore e shpejtĂ« pĂ«r analizĂ«n dhe pĂ«rpunimin e XML (licenca MIT).
Biblioteka ofron një ndërfaqe të ngjashme me DOM me mundësi për të shfletuar dhe ndryshuar nodet e dokumentit. Gjithashtu mbështetet XPath 1.0 dhe një mbështetje e plotë për Unicode (UTF-8, UTF-16 (BE/LE), UTF-32 (BE/LE) dhe UCS-2), me konvertim automatik të kodimeve.
Mbështet përdorimin pa bibliotekën standarde dhe përjashtimet C++, si dhe modalitetin "vetëm skedarët e titullit".
Ky është një version jubile - këtë vit projekti mbush 20 vjet! Më shumë rreth historisë së krijimit dhe zhvillimit të bibliotekës mund të lexoni në pugixml.org, GitHub ose në redaktimin e parë të lajmeve.
- Ndryshimet në sjellje
- elementet me një fëmijë të vetëm PCDATA tani paraqiten me etiketa bosh (nëse nuk përdoret parametri format_no_empty_element_tags).
- Përmirësimet
- shtohet mundësia PUGIXML_CHARCONV_FLOAT për konvertimin e numrave me pikë të lëvizshme, duke përdorur ; për këtë kërkohet C++17, gjë që e bën konvertimin të pavarur nga lokali dhe mund të përmirësojë performancën;
- shtohen funksionet xml_node::ensure_child dhe xml_node::ensure_attribute, të cilat kthejnë një fëmijë ose atribut me emrin e caktuar, duke e shtuar atë nëse mungon;
- përmirësohet performanca e kërkimeve të nodëve dhe atributeve sipas emrit;
- ngarkimi i dokumentit nga një bufer i zbrazët nuk shkakton më alokim të memories.
- Përmirësime në XPath
- përmirësohet performanca e pyetjeve që llogarisin ose krahasojnë vlera atributesh, për shembull @attr > 5;
- përmirësohet performanca e pyetjeve që zgjedhin nodë dhe atribute sipas emrit.
- Korrektime gabimesh
- rregullohet mbushja e stack-ut kur fshihet nënndjesh të niveli të thellë;
- rregullohen mbushjet e plota që mund të çojnë në dështime kur ngarkohet dokumente shumë të mëdha (> 1GB) në platforma 32-bit në modalitetin PUGIXML_WCHAR_MODE;
- rregullohet gabimi i dereferencimit të treguesit të nullit gjatë kopjimit të objekteve xpath_variable_set me variabë string me vlera të papërcaktuara.
- Përmirësime në mbështetje për CMake
- përmirësohet mbështetje për opsionin PUGIXML_BUILD_APPLE_FRAMEWORK;
- shtohet opsioni CMake PUGIXML_INSTALL_SOURCE për instalimin e pugixml.cpp (i dobishëm kur punoni në modalitetin "vetëm skedarët e titullit").
- Përmirësime në përputhshmëri
- shtohen skedarët e projektit dhe paketat NuGet për Visual Studio 2026;
- rregullohet problemi i përputhshmërisë me modulat C++20 kur përfshihet skedari pugixml.hpp në një fragment të modulit global;
- rregullohen paralajmërimet Clang dhe GCC -Wextra-semi-stmt, -Wsign-conversion dhe -Wuninitialized (GCC 16);
- rregullohet gabimi i kompilimit me Embarcadero C++ XE5;
- eliminohen disa alarmet e rreme të analizës statike.
Burimi: linux.org.ru




