pugixml 1.16









16. juuni, pärast peaaegu poolteist aastat arendust, tuli välja versioon 1.16 pugixml — kiiruselt ja platvormidevaheline raamatukogu XML-i parsimiseks ja töötlemiseks (MIT litsents).

Raamatukogu pakub DOM-sarnast liidest dokumentide sõlmede sirvimiseks ja nende muutmiseks. Samuti toetab see XPath 1.0 ja täielikku Unicode'i tuge (UTF-8, UTF-16 (BE/LE), UTF-32 (BE/LE) ja UCS-2), automaatse kodeeringu konversiooniga.

Toetatakse kasutamist ilma standardse C++ teegita ja eranditeta, samuti „ainult pealkirjade” režiim.

See on juubeliväljaanne — sel aastal täitub projektil 20 aastat! Täiendavat teavet raamatukogu ajaloo ja arengu kohta saab lugeda pugixml.org, GitHub või esimeses uudise väljaandes.

  • Käitumise muutused
    • elemendid, millel on üks tühi alam-element PCDATA, väljastatakse nüüd tühjade siltidega (kui parameetrit format_no_empty_element_tags ei kasutata).
  • Parandused
    • lisatud on valik PUGIXML_CHARCONV_FLOAT ujukomaga numbrite teisendamiseks, kasutades ; selleks on vajalik C++17, mistõttu teostused on sõltumatud lokaalist ja võivad parandada jõudlust;
    • lisatud xml_node::ensure_child ja xml_node::ensure_attribute funktsioonid, mis tagastavad nimega alamelemendi või atribuudi, lisades selle, kui see puudub;
    • parandatud sõlmede ja atribuutide otsimise jõudlust nime järgi;
    • dokumendi laadimine tühi salvestusse ei pruugi enam mälu eraldada.
  • XPath'i parendused
    • parandatud päringute jõudlust, kus arvutatakse või võrreldakse atribuutide väärtusi, näiteks @attr > 5;
    • parandatud sõlmede ja atribuutide valimise jõudlust nime järgi.
  • Veaparandused
    • parandatud virna ülevool, kui eemaldatakse alampuud, millel on väga sügavad tasemed;
    • parandatud täisarvude ülevoolud, mis võisid põhjustada tõrkeid väga suurte (> 1GB) dokumentide laadimisel 32-bitistes platvormides PUGIXML_WCHAR_MODE režiimis;
    • parandatud nullviideti dereferentseerimise viga xpath_variable_set objekti kopeerimisel stringimuutujatega, mille väärtused on määramata.
  • CMake'i toetamiste parendused
    • parandatud PUGIXML_BUILD_APPLE_FRAMEWORK valiku tugi;
    • lisatud CMake'i valik PUGIXML_INSTALL_SOURCE pugixml.cpp installimiseks (kasulik 'ainult peade' režiimis töötamisel).
  • Ühendatavuse täiustused
    • projektifailid ja NuGet paketid on lisatud Visual Studio 2026 jaoks;
    • C++20 moodulite ühilduvuse probleem on lahendatud, kui pugixml.hpp faili kaetakse globaalsete moodulite fragmentides;
    • Clangi ja GCC -Wextra-semi-stmt, -Wsign-conversion ja -Wuninitialized (GCC 16) hoiatuste probleemid on lahendatud;
    • kompileerimisviga Embarcadero C++ XE5-ga on lahendatud;
    • mitmed valehäired staatilises analüüsis on kõrvaldatud.

Allikas: linux.org.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster