pugixml 1.16









16 juni, na bijna anderhalf jaar ontwikkeling, is versie 1.16 uitgebracht pugixml — een snelle, cross-platform bibliotheek voor het parseren en verwerken van XML (MIT-licentie).

De bibliotheek biedt een DOM-achtige interface met mogelijkheden voor het doorlopen van documentknopen en hun wijziging. XPath 1.0 wordt ook ondersteund en er is volledige ondersteuning voor Unicode (UTF-8, UTF-16 (BE/LE), UTF-32 (BE/LE) en UCS-2), met automatische omzetting van coderingen.

Gebruik zonder de standaard C++ bibliotheek en uitzonderingen wordt ondersteund, evenals de modus 'alleen headerbestanden'.

Dit is een jubileumuitgave — dit jaar bestaat het project 20 jaar! Meer over de oorsprong en ontwikkeling van de bibliotheek is te lezen op pugixml.org, GitHub of in de eerste editie van het nieuws.

  • Wijzigingen in gedrag
    • elementen met ƩƩn lege onderliggende PCDATA worden nu weergegeven met lege tags (tenzij de parameter format_no_empty_element_tags wordt gebruikt).
  • Verbeteringen
    • de optie PUGIXML_CHARCONV_FLOAT is toegevoegd om de conversie van drijvende punten getallen te ondersteunen met behulp van ; dit vereist C++17, wat de conversies onafhankelijk van de locale maakt en kan de prestaties verbeteren;
    • de functies xml_node::ensure_child en xml_node::ensure_attribute zijn toegevoegd, die een onderliggend element of attribuut met de opgegeven naam retourneren, waarbij dit wordt toegevoegd als het ontbrak;
    • de prestaties van het zoeken naar knopen en attributen op naam zijn verbeterd;
    • het laden van een document vanuit een lege buffer leidt niet langer tot geheugentoewijzing.
  • Verbeteringen XPath
    • de prestaties van queries die een berekening of vergelijking van attribuutwaarden uitvoeren zijn verbeterd, bijvoorbeeld @attr > 5;
    • de prestaties van queries die knopen en attributen op naam selecteren zijn verbeterd.
  • Foutoplossingen
    • het stapeloverloopprobleem bij het verwijderen van subbomen met een zeer diepe nesting is opgelost;
    • gehele getal overflow is gecorrigeerd, wat tot crashes kon leiden bij het laden van zeer grote (> 1GB) documenten op 32-bits platforms in PUGIXML_WCHAR_MODE;
    • een fout met dereferenties van null pointers bij het kopiĆ«ren van xpath_variable_set objecten met stringvariabelen zonder toegewezen waarden is opgelost.
  • Verbeteringen in CMake ondersteuning
    • de ondersteuning voor de optie PUGIXML_BUILD_APPLE_FRAMEWORK is verbeterd;
    • de CMake optie PUGIXML_INSTALL_SOURCE is toegevoegd voor de installatie van pugixml.cpp (nuttig bij de 'alleen header' modus).
  • Verbeteringen in compatibiliteit
    • Projectbestanden en NuGet-pakketten voor Visual Studio 2026 toegevoegd;
    • Compatibiliteitsprobleem met C++20-modules opgelost bij het opnemen van het bestand pugixml.hpp in het globale modulefragment;
    • Waarschuwingen van Clang en GCC -Wextra-semi-stmt, -Wsign-conversion en -Wuninitialized (GCC 16) opgelost;
    • Compilatiefout opgelost met Embarcadero C++ XE5;
    • Diverse valse positieven van statische analyses verholpen.

Bron: linux.org.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster