Június 16-án, másfél év fejlesztés után, megjelent a 1.16-os verzió. pugixml — egy gyors, platformfüggetlen könyvtár XML parselésére és feldolgozására (MIT licenc).
A könyvtár DOM-szerű interfészt biztosít a dokumentumcsomópontok átkutatásához és módosításához. Támogatja az XPath 1.0-t és a teljes Unicode támogatást (UTF-8, UTF-16 (BE/LE), UTF-32 (BE/LE) és UCS-2), automatikus kódoláskonverzióval.
Lehetséges a használata anélkül, hogy a standard könyvtárra és C++ kivételekre lenne szükség, valamint "csak fejléces fájlok" módban.
Ez a jubileumi kiadás — idén a projekt 20 éves lesz! A könyvtár létrehozásának és fejlődésének történetét a következő linken olvashatja el: pugixml.org, GitHub vagy az első kiadású hírben.
- A viselkedés változásai
- azok az elemek, amelyek egy üres gyermek PCDATA elemet tartalmaznak, most üres tagekkel jelennek meg (ha nem használják a format_no_empty_element_tags paramétert).
- Fejlesztések
- hozzáadva a PUGIXML_CHARCONV_FLOAT opció, aminek segítségével lebegőpontos számokat alakíthat át a <charconv> segítségével; ehhez C++17 szükséges, amely a konverziókat függetlenné teszi a helyi beállításoktól és javíthatja a teljesítményt;
- hozzáadva az xml_node::ensure_child és xml_node::ensure_attribute funkciók, amelyek visszaadják a megadott nevű gyermek elemet vagy attribútumot, és hozzáadják, ha az nem létezett;
- javítva a csomópontok és attribútumok nevére történő keresés teljesítménye;
- üres pufferről történő dokumentumbetöltés már nem vezet memóriaallokáláshoz.
- XPath fejlesztések
- javítva a lekérdezések teljesítménye, ahol az attribútumok értékeinek számítása vagy összehasonlítása történik, például @attr > 5;
- javítva a csomópontok és attribútumok név szerinti kiválasztásának teljesítménye.
- Hibajavítások
- javítva a verem túlcsordulását, amely nagyon mélyen beágyazott részfák törlésekor léphetett fel;
- javítva a kettős számítási túlcsordulások, amelyek nagyon nagy (> 1GB) dokumentumok betöltésekor a 32 bites platformokon hibákat okozhattak PUGIXML_WCHAR_MODE módban;
- javítva a nullpointer dereferálásának hibája, amely xpath_variable_set objektumok másolásakor lépett fel nem inicializált értékű szöveges változókkal.
- CMake támogatás fejlesztések
- javítva a PUGIXML_BUILD_APPLE_FRAMEWORK opció támogatása;
- hozzáadva a CMake PUGIXML_INSTALL_SOURCE opció a pugixml.cpp telepítéséhez (hasznos "csak fejlécek" módban).
- Kompatibilitási fejlesztések
- hozzáadva projektfájlok és NuGet csomagok a Visual Studio 2026-hoz;
- Javították a C++20 modulokkal való kompatibilitási problémát a pugixml.hpp fájl globális modul fragmentumba való beillesztésekor;
- Javították a Clang és GCC -Wextra-semi-stmt, -Wsign-conversion és -Wuninitialized (GCC 16) figyelmeztetéseit;
- Javították a fordítási hibát az Embarcadero C++ XE5-tel;
- Több hamis pozitív esetet észleltek a statikus elemzés során.
Forrás: linux.org.ru




