Boost xml 文件解析

Step by step.Just do it. Fighting!

boost中提供了对配置文件读取的支持:property_tree。

property_tree的核心基础是basic_ptree。其接口像std::list。可以执行很多基本的元素操作,比如使用begin()、end()等。此外还加入了操作属性树的get()、get_child()、get_value()、data()等额外的操作。

测试的xml 文件:
SigRaw.xml
<?xml version="1.0" encoding="UTF-8"?>
<root>
<type>txt</type>
<separator>|</separator>
<fields>
   <field name="start_time_s" id="1" type="u32" len="0" defvalue="0"/>
   <field name="start_time_ns" id="2" type="u32" len="0" defvalue="0" />
</fields>
</root>

SigRaw_CQ.xml
<?xml version="1.0" encoding="UTF-8"?>
<config>
   <struct name="bssap" alias="b">
       <rowkey class="com.dinglicom.clouder.decode.cq2.CdrKeyParserImpl">
            <field section="city_code" name="calling_number" id="40" length="4" defvalue="0" />
            <field value="b" name="called_number" id="50" length="8"/>
            <field name="imsi" id="60" type="int" length="11" defvalue="0" decode="hex" placeholder="_" pos_placeholder="head"/>
            <field name="imei" id="70" type="int" length="11" defvalue="0" decode="hex" placeholder="_" pos_placeholder="head"/>
       </rowkey>
       <timestamp class="com.dinglicom.clouder.decode.cq2.McTimestampParserImpl" formula="end_time_s*10+cdr_index">
       </timestamp>
       <indexs>
          <cf name="CALLED_NUMBER" class="com.dinglicom.clouder.decode.cq2.CallednumParserImpl">
                <field name="calling_number" id="10" type="int" length="4" defvalue="0" decode="hex" placeholder="0" pos_placeholder="head"/>
           </cf>
           <cf name="IMSI" class="com.dinglicom.clouder.decode.cq2.ImsiParserImpl">
               <field name="imsi" id="11" type="long" length="8" defvalue="0" decode="hex" placeholder="0" pos_placeholder="head"/>
           </cf>
       </indexs>
       <ag name="AG1">
         <cf name="CF1">
           <cq name="CF1" type="text" seperator=",">
                    <field name="calling_number_str" id="20" type="string" length="24" defvalue="0"/>      
                    <field name="called_number_str" id="30" type="string" length="24" defvalue="0"/>      
               </cq>
               <cq name="CF1" type="bin" seperator="">
                    <field name="calling_number_str" id="30" type=
  • 19
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Shinobi_Jack

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值