Skip to content
Snippets Groups Projects
testxmlstructure.cxx 1.2 KiB
Newer Older
#include <vector>
#include <iostream>

#include <QtCore/QString>
#include <QtXml/QXmlStreamWriter>

int main() {
  std::vector<QString> apds;
  apds.push_back(QString::fromUtf8("1234567890"));
  apds.push_back(QString::fromUtf8("4567890123"));
  apds.push_back(QString::fromUtf8("7890123456"));

  int batch = 1;

  QString buffer;
  QXmlStreamWriter xml ( &buffer );
  xml.setAutoFormatting ( true );
  xml.writeStartDocument ( QString::fromUtf8 ( "1.0" ) );
  xml.writeStartElement ( QString::fromUtf8 ( "productiondb" ) );
  xml.writeTextElement ( QString::fromUtf8 ( "batch_type" ), QString::fromUtf8 ( "after irradiation" ) );
  xml.writeStartElement ( QString::fromUtf8 ( "elements" ) );
  int j = 1;
  for ( auto i = apds.begin(); i != apds.end(); i++, j++ ) {
    xml.writeStartElement ( QString::fromUtf8 ( "apd" ) );
    xml.writeTextElement ( QString::fromUtf8 ( "serial" ), *i );
    xml.writeTextElement ( QString::fromUtf8 ( "batch_number" ), QString::number ( batch, 10 ) );
    xml.writeTextElement ( QString::fromUtf8 ( "position" ), QString::number( j, 10 ) );
    xml.writeEndElement();
  }
  xml.writeEndDocument(); // This closes all open tags automatically.

  std::cerr << buffer.toStdString() << std::endl;
}