C++ Парсинг строки между разделителями
Имею строку, которая "прилетает" из паралельного порта и имеет вид: Status<Firmware>17.5</Firmware><SN>23556453</SN>" Каким образом оставить только 17.5 и 23556453 в отдельных переменных? Проект CLR Windows Forms in Visual Studio 2019 Всем заранее спасибо.
Ответы (1 шт):
Автор решения: Maggot
→ Ссылка
Boost ptree Вам поможет - https://www.boost.org/doc/libs/1_77_0/doc/html/property_tree.html
Вот минимальный пример
#include <iostream>
#include <sstream>
#include <string>
#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/xml_parser.hpp>
int main() {
std::string s{"<Firmware>17.5</Firmware><SN>23556453</SN>"};
boost::property_tree::ptree tree;
std::istringstream iss{s};
boost::property_tree::read_xml(iss, tree);
boost::property_tree::write_xml(std::cout, tree);
std::cout << std::endl;
std::cout << tree.get<double>("Firmware") << std::endl;
std::cout << tree.get<int>("SN") << std::endl;
return 0;
}