pugixml 1.16









Am 16. Juni, nach fast anderthalb Jahren Entwicklung, wurde Version 1.16 veröffentlicht. pugixml — eine schnelle, plattformübergreifende Bibliothek zum Parsen und Verarbeiten von XML (MIT-Lizenz).

Die Bibliothek bietet eine DOM-ähnliche Schnittstelle mit Funktionen zum Durchlaufen und Verändern von Dokumentknoten. Sie unterstützt auch XPath 1.0 und vollständige Unicode-Unterstützung (UTF-8, UTF-16 (BE/LE), UTF-32 (BE/LE) und UCS-2), einschließlich automatischer Zeichencodierungsumwandlung.

Es ist die Verwendung ohne Standardbibliothek und C++-Ausnahmen sowie der Modus „nur Header-Dateien“ unterstützt.

Dies ist eine Jubiläumsausgabe - in diesem Jahr wird das Projekt 20 Jahre alt! Mehr über die Entstehung und Entwicklung der Bibliothek erfahren Sie auf pugixml.org, GitHub oder in der ersten Ausgabe der Nachricht.

  • Änderungen im Verhalten
    • Elemente mit einem leeren Kind-Element PCDATA werden jetzt mit leeren Tags ausgegeben (es sei denn, die Option format_no_empty_element_tags wird verwendet).
  • Verbesserungen
    • Die Option PUGIXML_CHARCONV_FLOAT wurde hinzugefügt, um Fließkommazahlen mit <charconv> zu konvertieren; dafür ist C++17 erforderlich, was die Konvertierungen von der lokalen Umgebung unabhängig macht und die Leistung möglicherweise erhöht.
    • Die Funktionen xml_node::ensure_child und xml_node::ensure_attribute wurden hinzugefügt, die ein Kind-Element oder Attribut mit dem angegebenen Namen zurückgeben und es hinzufügen, wenn es fehlt.
    • Die Leistung bei der Suche nach Knoten und Attributen nach Namen wurde verbessert.
    • Das Laden eines Dokuments aus einem leeren Puffer führt nicht mehr zu Speicherzuweisungen.
  • Verbesserungen bei XPath
    • Die Leistung von Abfragen, die Berechnungen oder Vergleiche von Attributwerten durchführen, z. B. @attr > 5, wurde verbessert.
    • Die Leistung von Abfragen, die Knoten und Attribute nach Namen auswählen, wurde verbessert.
  • Fehlerbehebungen
    • Stacküberlauf bei der Entfernung von Unterbäumen mit sehr tiefen Verschachtelungen wurde behoben.
    • Integer-Überläufe wurden behoben, die beim Laden sehr großer (> 1 GB) Dokumente auf 32-Bit-Plattformen im PUGIXML_WCHAR_MODE zu Abstürzen führen konnten.
    • Ein Fehler beim Dereferenzieren von Null-Pointern beim Kopieren von xpath_variable_set mit string-Variablen ohne zugewiesene Werte wurde behoben.
  • Verbesserungen der CMake-Unterstützung
    • Die Unterstützung der PUGIXML_BUILD_APPLE_FRAMEWORK-Option wurde verbessert.
    • Die CMake-Option PUGIXML_INSTALL_SOURCE wurde hinzugefügt, um pugixml.cpp zu installieren (nützlich im "Nur-Header"-Modus).
  • Verbesserungen der Kompatibilität
    • Projektdaten und NuGet-Pakete für Visual Studio 2026 hinzugefügt;
    • Kompatibilitätsprobleme mit C++20-Modulen bei Einbindung der Datei pugixml.hpp im globalen Modulfragment behoben;
    • Warnungen von Clang und GCC -Wextra-semi-stmt, -Wsign-conversion und -Wuninitialized (GCC 16) behoben;
    • Kompilierungsfehler mit Embarcadero C++ XE5 behoben;
    • Mehrere falsch-positive Auslöser der statischen Analyse behoben.

Quelle: linux.org.ru

Zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Servern kaufen 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Servern | ProHoster