【发布时间】:2016-07-23 12:04:53
【问题描述】:
我正在尝试使用 boost/propert_tree 库解析 XML 文件。我可以正确获取xml文件和所有内容,但是当我寻找孩子时,它没有找到。
我有一个 input.xml 文件:
<ax:hello someatribute:ax="dwadawfesfjsefs">
<something>523523</something>
<ax:whatever>
<ax:service_tree>
<ax:service>some</ax:service>
<ax:url>someulr</ax:url>
</ax:service_tree>
</ax:whatever>
</ax:hello>
我尝试解析 xml 的函数:
void parseXml(std::istream &stream)
{
using boost::property_tree::ptree;
ptree pt;
read_xml(stream, pt);
BOOST_FOREACH(ptree::value_type const &value, pt.get_child("ax:hello"))
{
std::cout << value.first;
}
}
以及主要功能:
int main()
{
std::ifstream stream("input.xml");
parseXml(stream);
return 0;
}
我得到的错误信息是:
在抛出 'boost::exception_detail::clone_impl >' 的实例后调用终止 what(): 没有这样的节点 (ax:hello) 中止(核心转储)`
如您所见,ax:hello标签已正确打开和关闭,所以尽管有属性,它应该能够找到它,对吧?
希望有人知道这里发生了什么!
【问题讨论】:
标签: c++ xml boost boost-propertytree