16. juuni, peaaegu poolteist aastat kestnud arendustööd lĂ”petas 1.16 vĂ€ljaanne pugixml â kiire platvormidevaheline teek XML-i analĂŒĂŒsimiseks ja töötlemiseks (MIT litsents).
Teek pakub DOM-sarnast liidest dokumentide sÔlmede navigeerimise ja muutmise vÔimalustega. Samuti toetab see XPath 1.0 ja tÀielikku Unicode'i toetust (UTF-8, UTF-16 (BE/LE), UTF-32 (BE/LE) ja UCS-2) koos automaatse kodeeringute konverteerimisega.
Toetatakse kasutamist ilma C++ standardteegi ja eranditeta ning reĆŸiimi âainult pĂ€isedâ.
See on juubeli vĂ€ljaanne â sel aastal saab projekt 20 aastat vanaks! Rohkem teavet teegi ajaloost ja arengust saab lugeda aadressilt pugixml.org, GitHub vĂ”i esimesest versiooniuudisest.
- KĂ€itumise muutused
- elementide, millel on ĂŒks tĂŒhi laps PCDATA, vĂ€ljunditakse nĂŒĂŒd tĂŒhi siltidega (kui ei kasutata parameetrit format_no_empty_element_tags).
- TĂ€iendused
- lisatud valik PUGIXML_CHARCONV_FLOAT, et konverteerida ujukomaarve, kasutades ; selleks on vajalik C++17, mis muudab konverteerimised lokaalist sÔltumatuks ja vÔib parandada jÔudlust;
- lisatud funktsioonid xml_node::ensure_child ja xml_node::ensure_attribute, mis tagastavad mÀÀratud nimega lapse vÔi atribuut, lisades selle, kui see puudus;
- parandatud sÔlmede ja atribuutide nimepidi otsingu jÔudlust;
- dokumentide laadimine tĂŒhisalvest ei pĂ”hjusta enam mĂ€lu eraldamist.
- XPathi tÀiustused
- parandatud pÀringute jÔudlust, kus arvutatakse vÔi vÔrreldakse atribuutide vÀÀrtusi, nÀiteks @attr > 5;
- parandatud pÀringute jÔudlust, mis valivad sÔlmed ja atribuudid nime jÀrgi.
- Veaparandused
- parandatud virnaĂŒlevoolu probleem allasĂ”lmede kĂ€itumise eemaldamisel sĂŒgavale sisse VINDA-sse;
- parandatud tĂ€isarvude ĂŒlevoolud, mis vĂ”isid pĂ”hjustada probleemide ilmnemist vĂ€ga suurte (> 1GB) dokumentide laadimisel 32-bitistes platvormides PUGIXML_WCHAR_MODE reĆŸiimis;
- parandatud nullnÀitaja derivaliseerimise viga, kui kopeeriti xpath_variable_set objekte stringimuutujatega, millele ei olnud vÀÀrtusi mÀÀratud.
- CMake'i toe tÀiustused
- parandatud PUGIXML_BUILD_APPLE_FRAMEWORK valiku toetust;
- lisatud CMake'i valik PUGIXML_INSTALL_SOURCE, et installida pugixml.cpp (kasulik töö reĆŸiimis âainult pĂ€isedâ).
- Ăhildatavuse tĂ€iustused
- lisatud projektifailid ja NuGet'i paketid Visual Studio 2026 jaoks;
- Parandatud C++20 moodulitega ĂŒhilduvuse probleem, kui pugixml.hpp fail on globaalsete moodulite fragmendis kaasatud;
- Parandatud Clang ja GCC -Wextra-semi-stmt, -Wsign-conversion ja -Wuninitialized (GCC 16) hoiatused;
- Parandatud kompileerimisviga Embarcadero C++ XE5 puhul;
- Eemaldatud mitu vale positiivset tulemust staatilisest analĂŒĂŒsist.
Allikas: linux.org.ru




