将C ++头文件中定义的嵌套结构中的信息转储为XML

时间:2012-08-03 18:21:28

标签: c++ parsing header xml-parsing xerces-c

我正在编写一个C / C ++头文件解析器,它将.h文件转换为特定的XML格式。

我的结构定义如下:

struct struct1
{
   struct structchild1
   {  
      float child2;
   } child3;
   unsigned int child3;
};

我希望将上述结构表示为:

<tag1= "struct1">
        <name>struct1</name>
        <input_type>byte</input_type>
        <method></method>
        <tag_ref = "structchild1">
            <name>child3</name>
            <tag2 = "child2">
            <name>child2<name>
            <size>4<size>
            </tag2>
        </tag_ref>
     <tag2= "child3">
          <name>child3</name>
          <len>4</len>
          <value> </value>
     </tag2>
</tag1>

我的方法:我正在使用2阶段进程,我首先将头文件转换为gccXML格式,然后使用xerces-C ++ for visual studio将结果打印到XML文件中。我成功地能够解析除嵌套结构或联合之外的所有东西(枚举,typedef等)。 somebpdy能帮帮我解决这个问题吗?谢谢!

1 个答案:

答案 0 :(得分:0)

我不知道这是否有用,因为你正在使用C ++。但如果你想轻松完成这项工作,你可以使用Java中的JDOM或JAXB Parser。JAXB marshaller创建XML,而JAXB unmarshaller解析XML.I使用JDOMparser来解析XML,包括CDATA部分,它的工作非常出色。希望这会有所帮助。 也许你可能想看看这个例子。 http://www.mkyong.com/java/jaxb-hello-world-example/