pugixml 1.16









16 de junho, após quase um ano e meio de desenvolvimento, foi lançado o 1.16 pugixml — uma biblioteca multiplataforma rápida para análise e processamento de XML (licença MIT).

A biblioteca fornece uma interface semelhante ao DOM com recursos para navegação e modificação de nós do documento. Também suporta XPath 1.0 e oferece suporte total ao Unicode (UTF-8, UTF-16 (BE/LE), UTF-32 (BE/LE) e UCS-2), com conversão de codificação automática.

Suporta uso sem a biblioteca padrão e exceções C++, além de um modo 'apenas cabeçalhos'.

Esta é uma versão comemorativa — este ano o projeto completa 20 anos! Mais sobre a história da criação e desenvolvimento da biblioteca pode ser lido em pugixml.org, GitHub ou na primeira edição da notícia.

  • Mudanças no comportamento
    • elementos com um único filho PCDATA agora são exibidos com tags vazias (a menos que o parâmetro format_no_empty_element_tags seja utilizado).
  • Melhorias
    • adicionada a opção PUGIXML_CHARCONV_FLOAT para converter números de ponto flutuante usando ; isso requer C++17, o que torna as conversões independentes da localidade e pode melhorar o desempenho;
    • adicionadas as funções xml_node::ensure_child e xml_node::ensure_attribute, que retornam o filho ou atributo com o nome especificado, adicionando-o caso esteja ausente;
    • melhorada a performance de busca de nós e atributos por nome;
    • o carregamento de um documento a partir de um buffer vazio não leva mais à alocação de memória.
  • Melhorias no XPath
    • melhorada a performance de consultas que realizam cálculo ou comparação de valores de atributos, como @attr > 5;
    • melhorada a performance de consultas que selecionam nós e atributos por nome.
  • Correções de bugs
    • corrigido o estouro de pilha ao remover subárvores com nível de aninhamento muito profundo;
    • corrigidos estouros inteiros que poderiam causar falhas ao carregar documentos muito grandes (> 1GB) em plataformas de 32 bits no modo PUGIXML_WCHAR_MODE;
    • corrigido um erro de desreferência de ponteiro nulo ao copiar objetos xpath_variable_set com variáveis de string sem valor atribuído.
  • Melhorias no suporte ao CMake
    • melhorado o suporte à opção PUGIXML_BUILD_APPLE_FRAMEWORK;
    • adicionada a opção CMake PUGIXML_INSTALL_SOURCE para instalação de pugixml.cpp (útil ao trabalhar em modo 'apenas cabeçalhos').
  • Melhorias na compatibilidade
    • adicionados arquivos de projeto e pacotes NuGet para Visual Studio 2026;
    • corrigido o problema de compatibilidade com módulos C++20 ao incluir o arquivo pugixml.hpp no fragmento do módulo global;
    • corrigidos os avisos Clang e GCC -Wextra-semi-stmt, -Wsign-conversion e -Wuninitialized (GCC 16);
    • corrigido o erro de compilação com Embarcadero C++ XE5;
    • eliminados vários falsos positivos da análise estática.

Fonte: linux.org.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster