pugixml 1.16









16. jūnijā, pēc gandrīz pusotra gada izstrādes, tika izlaista 1.16 versija pugixml — ātra multiplatformu bibliotēka XML analīzei un apstrādei (MIT licence).

Bibliotēka nodrošina DOM līdzīgu interfeisu ar dokumenta mezglu pārlūkošanas un modificēšanas iespējām. Tā arī atbalsta XPath 1.0 un pilnu Unicode atbalstu (UTF-8, UTF-16 (BE/LE), UTF-32 (BE/LE) un UCS-2), automātiski konvertējot kodējumus.

Atbalsta izmantošanu bez standarta C++ bibliotēkas un izņēmumiem, kā arī režīmu "tikai virsrakstu faili".

Šī ir jubilejas izdošana — šogad projektam paliks 20 gadi! Vairāk par bibliotēkas izstrādes vēsturi var izlasīt pugixml.org, GitHub vai pirmajā izdevumā.

  • Uzvedības izmaiņas
    • elementi ar vienu tukšu bērnu elementu PCDATA tagad tiek izvadīti ar tukšiem tagiem (ja netiek izmantota opcija format_no_empty_element_tags).
  • Uzlabojumi
    • tika pievienota opcija PUGIXML_CHARCONV_FLOAT, lai konvertētu skaitļus ar peldošajām komatiem, izmantojot ; tam nepieciešams C++17, kas padara pārvēršanu neatkarīgu no lokalizācijas un var uzlabot veiktspēju;
    • tika pievienotas funkcijas xml_node::ensure_child un xml_node::ensure_attribute, kas atgriež bērnu elementu vai atribūtu ar norādīto nosaukumu, pievienojot to, ja tas trūka;
    • uzlabota mezglu un atribūtu meklēšanas veiktspēja pēc nosaukuma;
    • dokumenta ielāde no tukša bufera vairs neizsauc atmiņas piešķiršanu.
  • XPath uzlabojumi
    • uzlabota vaicājumu veiktspēja, kuros tiek veikta atribūtu vērtību aprēķināšana vai salīdzināšana, piemēram, @attr > 5;
    • uzlabota vaicājumu veiktspēja, kas izvēlas mezglus un atribūtus pēc nosaukuma.
  • Kļūdu labojumi
    • novērsta steka pārpildīšanās, dzēšot apakškokus ar ļoti dziļu iegrimi;
    • novērstas veselo skaitļu pārpildīšanās, kas varēja izraisīt avārijas ļoti lielu (> 1GB) dokumentu ielādē uz 32 bitu platformām PUGIXML_WCHAR_MODE režīmā;
    • novērsta nulles rādītāja dekodēšanas kļūda, kopējot xpath_variable_set objektus ar virkņu mainīgajiem bez piešķirtām vērtībām.
  • CMake atbalsta uzlabojumi
    • uzlabots atbalsts opcijai PUGIXML_BUILD_APPLE_FRAMEWORK;
    • tika pievienota CMake opcija PUGIXML_INSTALL_SOURCE, lai instalētu pugixml.cpp (noderīga, strādājot režīmā "tikai virsrakstu faili").
  • Saderības uzlabojumi
    • pievienoti projekta faili un NuGet pakas Visual Studio 2026;
    • novērsta saderības problēma ar C++20 moduļiem, iekļaujot failu pugixml.hpp globālā moduļa fragmentā;
    • novērsti Clang un GCC brīdinājumi -Wextra-semi-stmt, -Wsign-conversion un -Wuninitialized (GCC 16);
    • novērsta kompilācijas kļūda ar Embarcadero C++ XE5;
    • novērsti vairāki viltus pozitīvi statiskā analīzē.

Avots: linux.org.ru

Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem 🔥 Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem | ProHoster