尝试使用c ++ ..使用boost xml解析器从xml文件中获取内容。
opencv.xml
<opencv_storage>
<labels type_id="opencv-matrix">
<data>0 0 0 0 1 1 0 0</data>
</labels>
</opencv_storage>
C ++代码段
using boost::property_tree::ptree;
ptree pt;
boost::property_tree::read_xml("opencv.xml", pt);
std::string m_file = pt.get<std::string>("opencv_storage.labels type_id=\"opencv-matrix\".data");
std::cout<<"m_file "<<m_file<<std::endl;
执行时,程序抛出异常:
No such node (opencv_storage.labels type_id="opencv-matrix".data)
我怀疑,标签与type_id
之间存在空格在此先感谢,任何帮助都会受到赞赏,因为我正在努力适应提升。
答案 0 :(得分:1)
当然不是。元素名称中的空格在XML中是非法的。
您真正想要的是属性:Parsing XML Attributes with Boost
或者,更好的是,您希望在此处使用XML解析器:What XML parser should I use in C++?
如果你想以某种方式使用poperty tree(你确定吗?),请看这里:
枚举路径函数显然可以用于XML,因为它需要ptree