pugixml 1.16









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

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster