0

我的xml文件中有元素dateselection,blackscholes和volatility,我想检查这些值,尝试使用std :: cout打印出内容给我构建错误,我也想检查元素是否存在xml 文件,例如 if(blackscholes.exists())。代码合成中是否存在此类功能?

dateselection& date = i->dateselection();
const xsd::cxx::tree::date<char,simple_type>& end =  date.enddate();
const xsd::cxx::tree::sequence<bool, true>& black = i->blackscholes();
const xsd::cxx::tree::sequence<bool, true>& volatility = i->volatility();

我也可以将结束日期转换为 boost/date_time/gregorian/gregorian 类型吗?

提前致谢

4

1 回答 1

0

查看接口文件(生成的 hxx 存根),我发现以下类型映射到等效于字符串和 bool 的 xml 库::::xml_schema::string,::xml_schema::date,vanillaoption::blackscholes_type。名称可能因架构而异,但使用这些来处理和打印对我有用的值(搜索带有 ::xml 前缀的名称)。要检查可选字段,您必须将元素放在“选择”中,存根将为每个元素生成一个名为“present”的函数。您可以使用它来确定配置文件中是否存在元素。例如

for(quantoptions::vanillaoption_iterator i (optionConfig->vanillaoption().begin()); i != optionConfig->vanillaoption().end(); ++i)
{
    dateselection& date = i->dateselection();
    ::xml_schema::string symbol = i->symbol();
    ::xml_schema::date &endDate =  date.enddate();
    if(i->blackscholes().present())
    {
        //do whatever
    }
}
于 2013-09-10T23:31:14.220 回答