pugixml 1.16









16. juni, etter nesten ett og et halvt år med utvikling, ble versjon 1.16 utgitt pugixml — et raskt kryssplattform-bibliotek for parsing og behandling av XML (MIT-lisens).

Biblioteket tilbyr et DOM-lignende grensesnitt med evner til å navigere i dokumentnoder og endre dem. Det støtter også XPath 1.0 og full Unicode-støtte (UTF-8, UTF-16 (BE/LE), UTF-32 (BE/LE) og UCS-2), med automatisk konvertering av kodinger.

Det er mulig å bruke det uten standardbiblioteket og C++-unntak, samt i «kun header»-modus.

Dette er en jubileumsutgave — i år fyller prosjektet 20 år! Du kan lese mer om historien bak opprettelsen og utviklingen av biblioteket på pugixml.org, GitHub eller i den første utgaven av nyheten.

  • Endringer i oppførsel
    • elementer med ett tomt underelement PCDATA blir nå utgitt med tomme tagger (med mindre parameteren format_no_empty_element_tags brukes).
  • Forbedringer
    • lagt til alternativet PUGIXML_CHARCONV_FLOAT for konvertering av flyttall ved å bruke ; dette krever C++17, noe som gjør konverteringer uavhengige av lokalitet og kan forbedre ytelsen;
    • lagt til funksjonene xml_node::ensure_child og xml_node::ensure_attribute, som returnerer et underelement eller attributt med det angitte navnet, ved å legge det til hvis det manglet;
    • forbedret ytelse for søk av noder og attributter etter navn;
    • å laste dokumentet fra en tom buffer fører ikke lenger til minneallokering.
  • Forbedringer i XPath
    • forbedret ytelse for forespørselene som utfører beregning eller sammenligning av attributtverdier, for eksempel @attr > 5;
    • forbedret ytelse for forespørslene som velger noder og attributter etter navn.
  • En feil er rettet der
    • fikset stakkoverløp ved fjerning av undertrær med svært dyp nesting;
    • fikset heltalls-overløp som kunne føre til krasj ved lasting av svært store (> 1GB) dokumenter på 32-bits plattformer i PUGIXML_WCHAR_MODE;
    • fikset nullpeker-dereferering ved kopiering av xpath_variable_set-objekter med strengevariabler uten tildelte verdier.
  • Forbedringer i CMake-støtte
    • forbedret støtte for alternativet PUGIXML_BUILD_APPLE_FRAMEWORK;
    • lagt til CMake-alternativet PUGIXML_INSTALL_SOURCE for installasjon av pugixml.cpp (nyttig ved arbeid i «kun header»-modus).
  • Forbedringer i kompatibilitet
    • lagt til prosjektfiler og NuGet-pakker for Visual Studio 2026;
    • Løysingsproblem med C++20-modulane er retta når pugixml.hpp-fila blir inkludert i globalmodulen sin fragsjon;
    • Clang- og GCC-advarslar -Wextra-semi-stmt, -Wsign-conversion og -Wuninitialized (GCC 16) er retta;
    • Kompleksjonsfeil med Embarcadero C++ XE5 er retta;
    • Flere falske positive frå den statiske analysen er fjerna.

Kilde: linux.org.ru

Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere 🔥 Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere | ProHoster