0

我正在编写一个 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 可以请帮助我了解如何执行此操作吗?谢谢!

4

1 回答 1

0

我不知道这是否会有所帮助,因为您使用的是 C++。但是如果您想轻松完成此操作,您可以使用 Java 中的 JDOM 或 JAXB Parser。JAXB 编组器创建 XML,而 JAXB 解组器解析 XML。我使用过 JDOMparser解析包括 CDATA 部分的 XML,它工作得很好。希望这会有所帮助。也许你可能想看看这个例子。 http://www.mkyong.com/java/jaxb-hello-world-example/

于 2012-08-18T17:28:20.657 回答