LINUX.ORG.RU

TinyXML2 10.1.0 и 11.0.0

 , , ,


0

2

9 и 16 марта, после более года разработки, состоялись выпуски 10.1.0 и 11.0.0 небольшой, простой и эффективной C++ библиотеки TinyXML2, предназначенной для парсинга XML и распространяемой по лицензии Zlib.

Список изменений:

  • Устранена уязвимость CVE-2024-50615, связанная с проблемой разбора кодировок символов.
  • Исправлены некоторые внутренние типы (int -> size_t), в связи с чем нарушена совместимость c ABI прежних версий.
  • Исправлены ошибки сборки и опечатки.

Пример использования:

{
    XMLDocument doc;
    doc.LoadFile( "dream.xml" );

    // Structure of the XML file:
    // - Element "PLAY"      the root Element, which is the
    //                       FirstChildElement of the Document
    // - - Element "TITLE"   child of the root PLAY Element
    // - - - Text            child of the TITLE Element

    // Navigate to the title, using the convenience function,
    // with a dangerous lack of error checking.
    const char* title = doc.FirstChildElement( "PLAY" )->FirstChildElement( "TITLE" )->GetText();
    printf( "Name of play (1): %s\n", title );

    // Text is just another Node to TinyXML-2. The more
    // general way to get to the XMLText:
    XMLText* textNode = doc.FirstChildElement( "PLAY" )->FirstChildElement( "TITLE" )->FirstChild()->ToText();
    title = textNode->Value();
    printf( "Name of play (2): %s\n", title );
}

>>> Подробности на github.com

★★★★★

Проверено: CrX ()
Последнее исправление: CrX (всего исправлений: 1)
Ответ на: комментарий от amm

Очевидно, кто-то (программа) должен их парсить и показывать уже нормально оформленные данные. В каком конкретно виде - зависит от обстоятельств.

Если речь про какой-то файл, который ты скармиливаешь проге для её работы, то рядом должна быть ещё одна прога, которая этот файл просто парсит и выводит результат в консоль. И такое и сейчас практикуется, тот же asn.1 в сертификатах, да ещё и после base64, ты вручную не распарсишь, зато есть openssl x509 чтобы сконвертировать его в текст в консоли.

Если речь про сетевой пакет, который пришёл твоему демону откуда-то из инета - в демоне можно предусмотреть отладочный режим, в котором он дампит принятые пакеты опять же в текстовом виде в лог - и смотришь их там, а не в tcpdump-е с последующим ручным парсингом. А учитывая что сейчас везде шифрование, tcpdump всё равно получается бесполезен и парсить надо в проге.

Если это файл с текущими данными проги - опять нужна или прога-парсер или даже гуи с навигацией по данным. Как пример - вот файрфокс хранит (или хранил) какие-то данные сессии в тестовом json, упакованном компрессором. Но смотреть его в текстовом редакторе совершенно неудобно, всё равно для нормальной работы нужен автоматический его парсер в человекопонятный вид. Был бы он в бинарном формате - ничего хуже бы не стало.

Где ещё?

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от firkax

А учитывая что сейчас везде шифрование, tcpdump всё равно получается бесполезен и парсить надо в проге.

Можно самому себе MItM организовать. Я для этого https://mitmproxy.org/ использую.

ugoday ★★★★★
()
Ответ на: комментарий от ugoday

Я лучше собственным https-прокси буду пользоваться, это удобнее чем чужие проги из инета брать. Но как бы то ни было - это и есть та самая прога, которая конвертирует бинарные поток в человеко-читаемый текстовый вид.

firkax ★★★★★
()
Ответ на: комментарий от amm

А если без лозунгов и по делу написать - есть?

firkax ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.