
Ruslan PolupanСәуір 4, 2018, 12:54 Т.Қ.
Парсинг логов XML формата.
Доброго времени суток.
Вопрос скорее теологического плана.
Возникла необходимость представить в читабельном виде логи обмена между сервисами.
Логи такого формата:
18.04.03 03:46:19.261 [GET_DISCOUNT] TransactionNo=4709 SCardNo=2551000547876 MPosCheckId=310731 GoodsCount=1 additionalAttributeList.Count=0 18.04.03 03:46:23.598 [THTTPProtocol.Post -> request] <?xml version="1.0" encoding="windows-1251"?> <Data><Type>GET_DISCOUNT</Type><context><partnerID>10</partnerID><locationID>4001</locationID><terminalID>4001</terminalID><posID>1</posID><cashierID>17</cashierID><cashierFullName>Милованова Полина</cashierFullName><login>user1</login><password>user1</password><cardNo>2551000547876</cardNo><cardHash>7B0C042167106DF919222D4596451393</cardHash><transactionDate>2018-04-03 03:46:19</transactionDate></context><transactionNo>4709</transactionNo><transactionHash>E7EF9D3FC4154B7CB24D386487C96149</transactionHash><online>1</online><posReceipt>0</posReceipt><terminalReceipt>310731</terminalReceipt><GoodsList><goods><code1>3</code1><code2>3</code2><code3>1</code3><name>2710124194*Бенз.А-92</name><quantity>5.25</quantity><price>28.55</price><amount>149.89</amount><amountDiscount>0.00</amountDiscount><flagDiscount>0</flagDiscount><bonusMaxRedeem>149.88</bonusMaxRedeem></goods></GoodsList><PayType>1</PayType><totalAmount>149.89</totalAmount><totalAmountBeforeDiscount>149.89</totalAmountBeforeDiscount><additionalAttributeList/></Data> 18.04.03 03:46:23.598 [THTTPProtocol.Post <- answer] <?xml version="1.0" encoding="windows-1251"?><Data xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><errorCode>0</errorCode><errorDescription>Нет ошибок</errorDescription><Messages><Message><Channel>1</Channel><MessageDescription>Общий баланс бонусов 31.84</MessageDescription></Message></Messages><bonusList><GoodsData><code1>0</code1><code2>3</code2><code3>1</code3><amount>149.89</amount><bonusIssuance>0</bonusIssuance><bonusRedeem>31.84</bonusRedeem><Discount>0</Discount><discountCode /><discountAmount>0.00</discountAmount><discountSource>0</discountSource><discountPercent>0</discountPercent></GoodsData></bonusList><clmTrnId>751008</clmTrnId><balanceActive>31.84</balanceActive><balanceTotal>31.84</balanceTotal></Data> 18.04.03 03:46:26.671 [ISSUANCE] TransactionNo=4710 SCardNo=2551000547876 MPosCheckId=310731 GoodsCount=1 additionalAttributeList.Count=0 18.04.03 03:46:33.207 [THTTPProtocol.Post -> request] <?xml version="1.0" encoding="windows-1251"?> <Data><Type>ISSUANCE</Type><context><partnerID>10</partnerID><locationID>4001</locationID><terminalID>4001</terminalID><posID>1</posID><cashierID>17</cashierID><cashierFullName>Милованова Полина</cashierFullName><login>user1</login><password>user1</password><cardNo>2551000547876</cardNo><cardHash>7B0C042167106DF919222D4596451393</cardHash><transactionDate>2018-04-03 03:46:26</transactionDate></context><transactionNo>4710</transactionNo><transactionHash>2AA2BF06B710904EC2909E90C3A36F98</transactionHash><online>1</online><posReceipt>0</posReceipt><terminalReceipt>310731</terminalReceipt><GoodsList><goods><code1>3</code1><code2>3</code2><code3>1</code3><name>2710124194*Бенз.А-92</name><quantity>5.25</quantity><price>28.55</price><amount>149.89</amount><amountDiscount>0.00</amountDiscount><flagDiscount>0</flagDiscount><bonusMaxRedeem>149.88</bonusMaxRedeem></goods></GoodsList><PayType>1</PayType><totalAmount>149.89</totalAmount><totalAmountBeforeDiscount>149.89</totalAmountBeforeDiscount><additionalAttributeList/></Data> 18.04.03 03:46:33.207 [THTTPProtocol.Post <- answer] <?xml version="1.0" encoding="windows-1251"?><Data xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><Messages><Message><Channel>1</Channel><MessageDescription>Карта Glusco Club:</MessageDescription></Message><Message><Channel>1</Channel><MessageDescription>2551 0005 4787</MessageDescription></Message><Message><Channel>1</Channel><MessageDescription>Стан рахунку GlusCoin:</MessageDescription></Message><Message><Channel>1</Channel><MessageDescription>Нараховано: 1.5</MessageDescription></Message><Message><Channel>1</Channel><MessageDescription>Витрачено: 0</MessageDescription></Message><Message><Channel>1</Channel><MessageDescription>Баланс: 33.34</MessageDescription></Message></Messages><errorCode>0</errorCode><errorDescription>Нет ошибок</errorDescription><bonusList><GoodsData><code1>0</code1><code2>3</code2><code3>1</code3><amount>149.89</amount><bonusIssuance>1.5</bonusIssuance><bonusRedeem>0</bonusRedeem><Discount>0</Discount><discountAmount>0.00</discountAmount><discountPercent>0</discountPercent></GoodsData></bonusList><clmTrnId>751011</clmTrnId><TotalIssuance>1.5</TotalIssuance><TotalRedeem>0</TotalRedeem><balanceActive>33.34</balanceActive><balanceTotal>33.34</balanceTotal></Data>Вопрос в том что не могу придумать какой инструментарий использовать для разбора их и соответсвенно для наглядного отображения с возможностью поиска данных.
Буду признателен за любой совет либо комментарий.
Спасибо.

Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!
Пікірлер
Ua
- Unknown akadamn
- Қаң. 24, 2025, 5:14 Т.Қ.
Qt - Тест 001. Сигналы и слоты
- Нәтиже:84ұпай,
- Бағалау ұпайлары4
Ua
- Unknown akadamn
- Қаң. 24, 2025, 4:22 Т.Қ.
Qt - Тест 001. Сигналы и слоты
- Нәтиже:42ұпай,
- Бағалау ұпайлары-8
Соңғы пікірлер
ИМ
Django - Оқулық 017. Теңшелген Django кіру беті Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
Игорь МаксимовҚар. 22, 2024, 9:51 Т.Қ.

Evgenii LegotckoiҚаз. 31, 2024, 11:37 Т.Қ.
Qt Creator көмегімен fb3 файл оқу құралы Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
ИМ
Django - Сабақ 064. Python Markdown кеңейтімін қалай жазуға болады Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
Игорь МаксимовҚаз. 5, 2024, 4:51 Т.Қ.
QML - Сабақ 016. SQLite деректер қоры және онымен QML Qt-та жұмыс істеу Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
Енді форумда талқылаңыз
f
Рисование на QGraphicsScene при зажатой кнопке мыши Подскажите, пожалуйста! Как данный класс можно дополнить, чтобы созданные объекты можно было перемещать мышкой по сцене?
firstlunoxodАқп. 15, 2025, 1:46 Т.Қ.

ДмитрийАқп. 3, 2025, 4:24 Т.Қ.
не запускается компьютер!!! Не запускается компьютер (точнее работает блок , но сам монитор вообще жесть)В общем я ничего с интернета не скачивала в последнее время. На компе никаких левых пр…
Нужно запретить перемещение только некоторых итемов, остальные перемещать можно. Вопрос решен. Узнать QModelIndex элемента на который мы перетаскиваем другой элемент, можно с помощью функции indexAt(event->position().toPoint()) представления QTreeViev вызываемой в переопр…
OAuth2.0 через VK, получение email Спасибо большое за помощь и простите за то что отнял время своей невнимательностью.
Добрый день!
Qt/C++ - Урок 011. XML файлы в Qt - чтение и запись - используются QXmlStreamWriter и QXmlStreamReader
Qt/C++ - Урок 045. SvgReader на Qt. Восстановление данных из файла SVG в QGraphicsScene - Используется QDomDocument
Qt/C++ - Урок 072. Пример векторного редактора на Qt - там в исходниках есть куски кода с использованием QDomDocument.
Спасибо.
Снова вернулся к этой теме .
Но что-то никак не пойму как выводить значение тегов если они есть. т.е если это не ветка списка и у тега есть значение.
А Вы не могли бы скинуть код того тега и и описать, что подразумеваете под значением?
Во вложении архив с проектом. XML в самом виджете.
Неудобство QXmlStreamReader заключается в том, что Вы должны знать структуру документа, из которого извлекаете данные. Поэтому нужно знать заранее все теги с которыми будете работать.
А вот вам исправленный цикл, который распарсит те данные, которые должны содержать только текст.
Если не ошибаюсь, то QDomDocument в плане неизвестной структуры документа будет адекватнее себя вести, там можно проверить, имеются ли дочерние теги или нет.