Выгрузка информации из вложенных структур, определенных в заголовочных файлах C++, в XML
Я пишу синтаксический анализатор заголовков 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>
Мой подход: я использую двухэтапный процесс, сначала я конвертирую файл заголовка в формат gccXML, а затем использую xerces-C++ для Visual Studio, чтобы распечатать результаты в файл XML. Я успешно могу анализировать все (перечисления, typedefs и т. Д.), Кроме вложенных структур или объединений. Может ли кто-нибудь помочь мне, как это сделать? Спасибо!
1 ответ
Я не знаю, поможет ли это, так как вы используете C++. Но если вы хотите сделать это легко, вы можете использовать JDOM или JAXB Parser в Java. Маршаллер JAXB создает XML, в то время как демаршаллер JAXB анализирует XML. Я использовал JDOMparser проанализировать XML, включая раздел CDATA, и он работает блестяще. Надеюсь, это поможет. Может быть, вы захотите взглянуть на этот пример. http://www.mkyong.com/java/jaxb-hello-world-example/