【问题标题】:Dumping information from Nested Structures defined in C++ header files into XML将 C++ 头文件中定义的嵌套结构中的信息转储到 XML
【发布时间】:2012-08-01 19:49:39
【问题描述】:

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

【问题讨论】:

  • 所以你已经有了来自声明的 XML。大概您的“新形状”只是从 GCCXML 到您的映射。您实际上并没有描述您的问题,这可能是在定义该映射或实现它时。 (有一个问题的提示叫做“大小”;GCCXML 输出中是否提供了这个提示?GCCXML 应该输出程序结构信息,而不是实现细节)。

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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-26
    • 2019-10-30
    • 2021-08-11
    • 2013-10-15
    • 1970-01-01
    • 2010-10-10
    相关资源
    最近更新 更多