"Boost xml"의 두 판 사이의 차이
jjuiddong
(→XML Write Example) |
(→XML Write Example) |
||
54번째 줄: | 54번째 줄: | ||
// boost property tree | // boost property tree | ||
using boost::property_tree::ptree; | using boost::property_tree::ptree; | ||
− | |||
ptree props; | ptree props; | ||
2015년 8월 24일 (월) 11:05 판
- 참고자료
- http://www.technical-recipes.com/2014/using-boostproperty_tree/
- 이보다 더 좋은 예제는 없을 듯.
XML Example (hardware_settings_config.xml)
<?xml version="1.0" encoding="UTF-8" ?> <hardware_settings_config version="56" deviceId="0x1380"> <cpu> <threadStrategy parallelUpdateRender="true" workerMapFile="system/workerMap8Core.xml" forceFeedbackProcessor="6" dvdStorageProcessor="7" dataSetMonitorProcessor="4" renderProcessor="0" updateProcessor="2" fileStreamProcessor="5" /> </cpu> </hardware_settings_config>
XML Read Example
#include <iostream> #include <string> #include <boost/property_tree/ptree.hpp> #include <boost/property_tree/xml_parser.hpp> using namespace std; void main() { string fileName = "hardware_settings_config.xml"; try { // boost property tree using boost::property_tree::ptree; using std::string; ptree props; boost::property_tree::read_xml(fileName, props); bool parallelUpdateRender = props.get<bool>("hardware_settings_config.cpu.threadStrategy.<xmlattr>.parallelUpdateRender", false); cout << "parallelUpdateRender = " << parallelUpdateRender << endl; string workerMapFile = props.get<string>("hardware_settings_config.cpu.threadStrategy.<xmlattr>.workerMapFile", ""); cout << "workerMapFile = " << workerMapFile << endl; } catch (std::exception&e) { cout << "Error " << e.what() << endl; } }
XML Write Example
#include <iostream> #include <string> #include <boost/property_tree/ptree.hpp> #include <boost/property_tree/xml_parser.hpp> using namespace std; void main() { try { // boost property tree using boost::property_tree::ptree; ptree props; props.put<bool>("hardware_settings_config.cpu.threadStrategy.<xmlattr>.parallelUpdateRender", false); boost::property_tree::write_xml("wr.xml", props); } catch (std::exception&e) { cout << "Write Error " << e.what() << endl; } }