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




