通过Reflection在XML中的C / C ++头文件中定义的嵌套结构/联合

时间:2012-07-31 15:57:41

标签: c++ visual-c++ reflection

我的结构如下所示:(示例)

struct struct3
{
   struct structchild4
   {  
      float child5;
   } child6;
   unsigned int child7;
};

我希望在XML中表示如下:

<tag1= "struct3">
        <name>struct3</name>
        <input_type>byte</input_type>
        <method></method>
        <tag_ref = "structchild4">
            <name>child6</name>
        </tag_ref>
        <tag2= "child7">
            <name>child7</name>
            <len>4</len>
            <value> </value>
        </tag2>
    </tag1>

我正在遵循的方法是将其转换为gccXML格式,然后使用Visual C ++解析它。我使用xerces -c DOM解析器。

有人可以建议怎么做吗?温柔地反弹。无论如何我可以发送我的代码吗?它巨大且超出了人物限制。谢谢!

1 个答案:

答案 0 :(得分:1)

正如您已经知道的那样,gccXML有一些重要的局限性,有许多开源C ++解析器描述here。不幸的是,C ++中的relfection对编码器来说是很多工作(但仍然是一个很好的练习),我最喜欢的方法是使用clang python API,clang是一个优秀的C ++解析器,但由你来决定如何处理该信息(通过输出到XML或JSON)。曾经有一个XML printer for Clang但不幸的是我不相信它仍然活跃,你可能可以使用早期的版本。祝你好运!