16-iyun kuni, deyarli bir yarim yillik ishlab chiqishdan so'ng, 1.16 versiyasi chiqarildi. pugixml — XMLni tahlil qilish va qayta ishlash uchun tezkor platformalararo kutubxona (MIT litsenziyasi).
Kutubxona hujjat tugunlarini ko'rib chiqish va o'zgartirish imkoniyatiga ega DOMga o'xshash interfeysni taqdim etadi. Shuningdek, u XPath 1.0 va to'liq Unicode qo'llab-quvvatlashini (UTF-8, UTF-16 (BE/LE), UTF-32 (BE/LE) va UCS-2), avtomatik kodlashni o'zgartirish bilan qo'llab-quvvatlaydi.
Qo'llab-quvvatlanadigan foydalanish C++ standart kutubxonasi va istisnolarni, shuningdek, "faqat sarlavha fayllari" rejimini o'z ichiga oladi.
Bu muhim nashr — loyiha bu yil 20 yoshga to'ladi! Kutubxona tarixi va rivojlanishi haqida ko'proq ma'lumotni quyidagi manzilda o'qishingiz mumkin pugixml.org, GitHub yoki yangiliklarning birinchi sonida.
- Xulq-atvor o'zgarishlari
- Bitta bo'sh PCDATA bola elementiga ega elementlar endi bo'sh teglar bilan chiqariladi (agar format_no_empty_element_tags parametri ishlatilmasa).
- Yaxshilash
- Suzuvchi nuqtali raqamlarni o'zgartirish uchun PUGIXML_CHARCONV_FLOAT opsiyasi qo'shildi ; buning uchun C++17 talab qilinadi, bu esa konversiyalarni mahalliy sharoitdan mustaqil qiladi va ish faoliyatini yaxshilaydi;
- xml_node::ensure_child va xml_node::ensure_attribute funksiyalari qo'shildi, ular ko'rsatilgan nom bilan bola element yoki atributni qaytaradi va agar u yo'q bo'lsa, uni qo'shadi;
- Nom bo'yicha tugunlar va atributlarni qidirishning yaxshilangan samaradorligi;
- Bo'sh buferdan hujjatni yuklash endi xotira ajratishga olib kelmaydi.
- XPath yaxshilanishlari
- @attr > 5 kabi atribut qiymatlarini hisoblaydigan yoki taqqoslaydigan so'rovlarning yaxshilangan ishlashi;
- Nomi bo'yicha tugunlar va atributlarni tanlaydigan so'rovlarning yaxshilangan ishlashi.
- Xatoliklar tuzatildi
- Juda chuqur joylashtirish darajalariga ega kichik daraxtlarni o'chirishda stekning toshib ketishi tuzatildi;
- PUGIXML_WCHAR_MODE da 32-bitli platformalarda juda katta (> 1GB) hujjatlarni yuklashda ishdan chiqishga olib kelishi mumkin bo'lgan butun sonlarning toshib ketishi tuzatildi;
- xpath_variable_set obyektlarini belgilanmagan qiymatlarga ega satr o'zgaruvchilari bilan nusxalashda null ko'rsatkichni yo'naltirish xatosi tuzatildi.
- CMake qo'llab-quvvatlash yaxshilanishlari
- PUGIXML_BUILD_APPLE_FRAMEWORK opsiyasi uchun yaxshilangan qo'llab-quvvatlash;
- pugixml.cpp ni o'rnatish uchun CMake PUGIXML_INSTALL_SOURCE opsiyasi qo'shildi ("faqat sarlavhalar" rejimida ishlaganda foydali).
- Moslikni yaxshilash
- Visual Studio 2026 uchun loyiha fayllari va NuGet paketlari qo'shildi;
- Global modul fragmentiga pugixml.hpp faylini qo'shishda C++20 modullari bilan moslik muammosi tuzatildi;
- Clang va GCC ogohlantirishlari -Wextra-semi-stmt, -Wsign-conversion va -Wuninitialized (GCC 16) o'rnatildi;
- Embarcadero C++ XE5 bilan kompilyatsiya xatosi tuzatildi;
- Statik tahlilning bir nechta noto'g'ri ijobiy tomonlari tuzatildi.
Manba: linux.org.ru




