【发布时间】:2017-07-15 18:17:39
【问题描述】:
我正在尝试将 boost::property_tree::ptree 的元素传递给函数。 具体来说,我必须遵循初始化 ptree 的 XML 代码:
<Master Name='gamma'>
<Par1 Name='name1'>
<Value>0.</Value>
<Fix>1</Fix>
</Par1>
<Par2 Name='name2'>
<Value>0.</Value>
<Fix>1</Fix>
</Par2>
</Master>
我想将它的一部分传递给一个函数。基本上我想通过:
<Par2 Name='name2'>
<Value>0.</Value>
<Fix>1</Fix>
</Par2>
函数可能如下所示:
void processTree( which_type_do_I_put_here element ){
std::string n = element.get<std::string>("<xmlattr>.Name");
double val = element.get<double>("Value");
}
一般来说,我可以使用ptree::get_child("par2") 传递子树。这样做的缺点是函数无法访问该节点的<xmlattr>。
如何通过树的这一部分访问<xmlattr>?
提前感谢您的任何想法。
~彼得
【问题讨论】:
-
<xmlattr>没什么特别的,它只是一个子树。所以get_child("par2")只返回一个具有<xmlattr>子树的树。