pugixml 1.16









16 iunie, după aproape un an și jumătate de dezvoltare, a fost lansată versiunea 1.16 pugixml — o bibliotecă rapidă și multip platformă pentru analizarea și procesarea XML (licență MIT).

Biblioteca oferă o interfață similară DOM cu posibilități de parcurs nodurile documentului și de a le modifica. De asemenea, suportă XPath 1.0 și suport complet pentru Unicode (UTF-8, UTF-16 (BE/LE), UTF-32 (BE/LE) și UCS-2), cu conversie automată a codificărilor.

Se suportă utilizarea fără biblioteca standard și excepții C++, și modul „doar fișiere de antet”.

Aceasta este o lansare aniversară — anul acesta proiectul va împlini 20 de ani! Puteți citi mai multe despre istoria creării și dezvoltării bibliotecii pe pugixml.org, GitHub sau în prima ediție a știrilor.

  • Modificări în comportament
    • elementele cu un singur element copil PCDATA acum sunt afișate cu etichete goale (dacă nu se folosește parametrul format_no_empty_element_tags).
  • Îmbunătățiri
    • a fost adăugată opțiunea PUGIXML_CHARCONV_FLOAT pentru conversia numerelor cu virgulă flotantă, folosind ; pentru aceasta este necesar C++17, ceea ce face conversiile independente de locație și poate îmbunătăți performanța;
    • au fost adăugate funcțiile xml_node::ensure_child și xml_node::ensure_attribute, care returnează un element copil sau un atribut cu numele specificat, adăugându-l, dacă lipsește;
    • a fost îmbunătățită performanța căutării nodurilor și atributelor după nume;
    • încărcarea documentului dintr-un buffer gol nu mai duce la alocarea de memorie.
  • Îmbunătățiri XPath
    • a fost îmbunătățită performanța interogărilor care efectuează calculul sau compararea valorilor atributelor, de exemplu @attr > 5;
    • a fost îmbunătățită performanța interogărilor care selectează noduri și atribute după nume.
  • Corecturi de erori
    • s-a corectat overflow-ul stivei la ștergerea sub-arborilor cu un nivel de adâncime extrem de mare;
    • s-au corectat overflow-urile întregi care ar putea duce la căderi atunci când se încarcă documente foarte mari (> 1GB) pe platforme pe 32 de biți în modul PUGIXML_WCHAR_MODE;
    • s-a corectat o eroare de dereferențiere a unui pointer nul la copierea obiectelor xpath_variable_set cu variabile de tip string fără valori alocate.
  • Îmbunătățiri ale suportului CMake
    • a fost îmbunătățit suportul pentru opțiunea PUGIXML_BUILD_APPLE_FRAMEWORK;
    • a fost adăugată opțiunea CMake PUGIXML_INSTALL_SOURCE pentru instalarea pugixml.cpp (utilă atunci când se lucrează în modul „doar fișiere de antet”).
  • Îmbunătățiri de compatibilitate
    • fișierele proiectului și pachetele NuGet pentru Visual Studio 2026 au fost adăugate;
    • problema de compatibilitate cu modulele C++20 la includerea fișierului pugixml.hpp în fragmentul global al modulului a fost rezolvată;
    • avertizările Clang și GCC -Wextra-semi-stmt, -Wsign-conversion și -Wuninitialized (GCC 16) au fost corectate;
    • eroarea de compilare cu Embarcadero C++ XE5 a fost corectată;
    • mai multe alarme false ale analizei statice au fost eliminate.

Sursa: linux.org.ru

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster