pugixml 1.16









16. juni, efter næsten halvandet års udvikling, blev version 1.16 udgivet pugixml — en hurtig, tværplatforms bibliotek til parsing og behandling af XML (MIT-licens).

Biblioteket giver et DOM-lignende interface med funktioner til at navigere i dokumentets noder og ændre dem. Det understøtter også XPath 1.0 og fuld understøttelse af Unicode (UTF-8, UTF-16 (BE/LE), UTF-32 (BE/LE) og UCS-2), med automatisk konvertering af kodninger.

Brug uden den standardbibliotek og C++ undtagelser understøttes, samt en "kun header" tilstand.

Dette er en jubilæumsudgave - i år fylder projektet 20 år! Læs mere om historien bag bibliotekets oprettelse og udvikling på pugixml.org, GitHub eller i den første udgave af nyhederne.

  • Ændringer i adfærd
    • elementer med en tom underordnet PCDATA-output vises nu med tomme tags (hvis parameteren format_no_empty_element_tags ikke bruges).
  • Forbedringer
    • tilføjet mulighed PUGIXML_CHARCONV_FLOAT til at konvertere flydende tal ved hjælp af ; dette kræver C++17, hvilket gør konverteringer uafhængige af lokalitet og kan forbedre ydeevnen;
    • tilføjet funktionerne xml_node::ensure_child og xml_node::ensure_attribute, der returnerer et underordnet element eller attribut med det angivne navn, og tilføjer det, hvis det manglede;
    • forbedret ydeevne ved søgning af noder og attributter efter navn;
    • indlæsning af dokument fra en tom buffer fører ikke længere til hukommelsesallokering.
  • Forbedringer af XPath
    • forbedret ydeevne ved forespørgsler, der involverer beregning eller sammenligning af attributværdier, som f.eks. @attr > 5;
    • forbedret ydeevne ved forespørgsler, der vælger noder og attributter efter navn.
  • Fejlrettelser
    • rettet en stakoverløb ved sletning af undertræer med meget dyb indlejring;
    • rettet heltalsoverløb, der kunne føre til nedbrud ved indlæsning af meget store (> 1GB) dokumenter på 32-bit platforme i PUGIXML_WCHAR_MODE;
    • rettet en fejl ved afdereferering af null pointer ved kopiering af xpath_variable_set objekter med strengevariabler uden tildelte værdier.
  • Forbedringer af CMake-understøttelse
    • forbedret understøttelse af PUGIXML_BUILD_APPLE_FRAMEWORK muligheder;
    • tilføjet CMake mulighed PUGIXML_INSTALL_SOURCE til installation af pugixml.cpp (nyttigt ved arbejde i "kun header" tilstand).
  • Forbedringer af kompatibilitet
    • Projektfiler og NuGet-pakker til Visual Studio 2026 er tilføjet;
    • Problemet med kompatibilitet med C++20-moduler ved inkludering af filen pugixml.hpp i globale modulfragmenter er løst;
    • Advarsler fra Clang og GCC -Wextra-semi-stmt, -Wsign-conversion og -Wuninitialized (GCC 16) er rettet;
    • Kompileringsfejlen med Embarcadero C++ XE5 er rettet;
    • Flere falske positiver ved statisk analyse er blevet elimineret.

Kilde: linux.org.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster