pugixml 1.16









16 iyun, demək olar ki, bir buçuk il davam edən inkişafdan sonra, 1.16 buraxıldı. pugixml — sürətli çox platformalı XML ayırma və işləmə kitabxanası (MIT lisenziyası).

Kitabxana, sənədin düyünlərini dolaşma və dəyişdirmə imkanları ilə DOM-ya bənzər bir interfeys təqdim edir. XPath 1.0 dəstəklənir və Unicode (UTF-8, UTF-16 (BE/LE), UTF-32 (BE/LE) və UCS-2) də tam dəstəklənir, kodlamaların avtomatik çevrilməsi ilə.

Standart kitabxana və C++ istisnaları olmadan istifadə dəstəklənir, həmçinin "yalnız başlıq faylları" rejimi.

Bu yubiley buraxılışıdır - bu il layihənin 20 ili tamam olacaq! Kitabxananın yaradılması və inkişafı haqqında daha ətraflı məlumatı pugixml.org, GitHub veya xəbərin ilk versiyasında oxuya bilərsiniz.

  • Davranış dəyişikləri
    • bir boş uşaq PCDATA elementi olan elementlər indi boş etiketlərlə çıxış edilir (format_no_empty_element_tags parametri istifadə edilmədikdə).
  • Təkmilləşdirmələr
    • dəyişənlərin float şəklində çevrilməsi üçün PUGIXML_CHARCONV_FLOAT seçimi əlavə edilmişdir, bu istifadə edərək, C++17 tələb edir, bu da çevrilmələri lokalidən asılı olmadan həyata keçirir və performansı artırır;
    • xml_node::ensure_child və xml_node::ensure_attribute funksiyaları əlavə edildi, adı ilə uşaq elementi və ya atributu qaytarır, əgər itkin olsa, əlavə edir;
    • düyünləri və atributları adla axtarışın performansı artırıldı;
    • Boş tampondan sənəd yükləmək artıq yaddaş ayırmasına səbəb olmur.
  • XPath təkmilləşdirmələri
    • atribut dəyərinin hesablanması və ya müqayisəsi aparılan sorğuların performansı artırıldı, məsələn, @attr > 5;
    • adla düyünləri və atributları seçən sorğuların performansı artırıldı.
  • Səhv düzəlişləri
    • çox dərin daxilolma səviyyəsinə malik alt ağacların silinməsi zamanı stack overflow problemi həll edildi;
    • 32-bit platformalarda PUGIXML_WCHAR_MODE rejimində çox böyük (> 1GB) sənədlərin yüklənməsi zamanı baş verə biləcək tam ədəd overflow məsələləri düzəldildi;
    • dəyişən qiymətləri təyin edilməmiş vəziyyətlərlə xpath_variable_set obyektlərini kopyalayarkən NULL göstəricisini dereferanslama səhvi düzəldildi.
  • CMake dəstəyi üçün təkmilləşdirmələr
    • PUGIXML_BUILD_APPLE_FRAMEWORK seçimində dəstək artırıldı;
    • pugixml.cpp-nin quraşdırılması üçün CMake PUGIXML_INSTALL_SOURCE seçimində əlavə edildi ("yalnız başlıqlar" rejimində işləyərkən faydalıdır).
  • Uyğunluq təkmilləşdirmələri
    • Visual Studio 2026 üçün layihə faylları və NuGet paketləri əlavə edildi;
    • pugixml.hpp faylını qlobal modul fraqmentinə daxil edərkən C++20 modulları ilə uyğunluq problemi düzəldildi;
    • Clang və GCC -Wextra-semi-stmt, -Wsign-conversion və -Wuninitialized (GCC 16) xəbərdarlıqları düzəldildi;
    • Embarcadero C++ XE5 ilə əlaqədar olan tərtibat səhvi düzəldildi;
    • bir neçə statik analiz mərkəzli yanlış mükəmməl məsələlər aradan qaldırıldı.

Mənbə: linux.org.ru

DDoS qoruması olan saytlara etibarlı hosting satın alın, VPS VDS serverlər 🔥 DDoS qoruması olan saytlara etibarlı hosting satın alın, VPS VDS serverlər | ProHoster