Выгрузка информации из вложенных структур, определенных в заголовочных файлах 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/

Другие вопросы по тегам