gpt4 book ai didi

c++ - 解析在 XML 中的 C/C++ 头文件中定义的嵌套结构/union

转载 作者:行者123 更新时间:2023-11-28 08:00:28 25 4
gpt4 key购买 nike

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

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 解析器。

任何人都可以建议如何去做这件事吗?谢谢!

最佳答案

更好的方法是反射,BoostLib 有一些现成的。你做这样的事情:

for( Attribute::Iterator it = reflectiveObject.getAttributeList().begin();
it != reflectiveObject.getAttributeList().end();
++it )
{
XML.createNode( it.getAttributeName() );
}

//然后方法相同。应该有一个上层迭代器递归地遍历类型,如果类型有子类或子结构,那么识别 XML 并为它们运行相同的代码。

没有反射会更无聊,你应该为它创建 Formater 和 Parser,比如

if( dynamic_cast< DesirecClass* >( obj ) != NULL ){
XML.createNode( typeid( obj ).name() );
}
// Hard Code (terrible treatment) for each attribute, etc...

还有一些demangling的方法可以自己搜索。

关于c++ - 解析在 XML 中的 C/C++ 头文件中定义的嵌套结构/union ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11621641/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com