ב-16 ביוני, לאחר כמעט שנה וחצי של פיתוח, שוחררה גרסה 1.16. pugixml — ספרייה חוצת פלטפורמות מהירה לניתוח ועיבוד XML (רישיון MIT).
הספרייה מספקת ממשק דמוי DOM עם יכולת לעבור ולשנות צמתי מסמכים. היא תומכת גם ב-XPath 1.0 ובתמיכה מלאה ב-Unicode (UTF-8, UTF-16 (BE/LE), UTF-32 (BE/LE) ו-UCS-2), עם המרת קידוד אוטומטית.
השימוש הנתמך כולל את ספריית ++C הסטנדרטית והחריגים, ואת מצב "קבצי כותרת בלבד".
זוהי מהדורה משמעותית - הפרויקט חוגג 20 שנה השנה! ניתן לקרוא עוד על ההיסטוריה וההתפתחות של הספרייה ב pugixml.org, GitHub או במהדורה הראשונה של החדשות.
- שינויים התנהגותיים
- אלמנטים עם אלמנט צאצא ריק אחד של PCDATA מופקים כעת עם תגיות ריקות (אלא אם כן נעשה שימוש בפרמטר format_no_empty_element_tags).
- שיפורים
- נוספה האפשרות PUGIXML_CHARCONV_FLOAT להמרת מספרי נקודה צפה באמצעות ; זה דורש C++17, מה שהופך את ההמרות ללא תלויות מקומיות ויכול לשפר את הביצועים;
- נוספו פונקציות xml_node::ensure_child ו-xml_node::ensure_attribute, אשר מחזירות אלמנט או תכונה של צאצא עם השם שצוין, ומוסיפות אותו אם הוא היה חסר;
- ביצועים משופרים של חיפוש צמתים ומאפיינים לפי שם;
- טעינת מסמך ממאגר ריק אינה גורמת עוד להקצאת זיכרון.
- שיפורי XPath
- ביצועים משופרים של שאילתות המחשבות או משוות ערכי מאפיינים, כגון @attr > 5;
- ביצועים משופרים של שאילתות שבוחרות צמתים ותכונות לפי שם.
- תיקוני באגים
- תוקנה גלישת מחסנית בעת מחיקת עצי משנה עם רמות קינון עמוקות מאוד;
- תוקנו גלישות של מספרים שלמים שעלולות לגרום לקריסות בעת טעינת מסמכים גדולים מאוד (מעל 1GB) בפלטפורמות 32 סיביות ב-PUGIXML_WCHAR_MODE;
- תוקנה שגיאת ביטול הפניה של מצביע null בעת העתקת אובייקטים של xpath_variable_set עם משתני מחרוזת עם ערכים לא מוקצים.
- שיפורי תמיכה של CMake
- תמיכה משופרת באפשרות PUGIXML_BUILD_APPLE_FRAMEWORK;
- נוספה אפשרות CMake PUGIXML_INSTALL_SOURCE להתקנת pugixml.cpp (שימושית בעת עבודה במצב "כותרות בלבד").
- שיפורי תאימות
- נוספו קבצי פרויקט וחבילות NuGet עבור Visual Studio 2026;
- תוקנה בעיית תאימות עם מודולי C++20 בעת הכללת הקובץ pugixml.hpp בפרגמנט מודול גלובלי;
- תוקנו אזהרות Clang ו-GCC -Wextra-semi-stmt, -Wsign-conversion ו- -Wuninitialized (GCC 16);
- תוקנה שגיאת קומפילציה עם Embarcadero C++ XE5;
- תוקנו מספר תוצאות חיוביות שגויות של ניתוח סטטי.
מקור: linux.org.ru




