pugixml 1.16









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

DDoS himoyasi, VPS VDS serverlari bo'lgan saytlar uchun ishonchli hosting sotib oling 🔥 DDoS himoyasi, VPS VDS serverlari bilan ishonchli veb-sayt xostingini sotib oling | ProHoster