我正在编写一个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能帮帮我解决这个问题吗?谢谢!
答案 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/