hi !

i'm working on quite the same things ...
i don't understand well how QXmlStreamWriter works, so, i'm using DOM elements.

what do you think about something like this :
Qt Code:
  1. class OdRmtXmlNode
  2. {
  3. QDomElement _element;
  4. QDomElement _odLdElement;
  5.  
  6. public :
  7. OdRmtXmlNode(QDomElement parent,ODRMT *odrmt)
  8. {
  9. _element = parent.ownerDocument().createElement("ODRMT");
  10. parent.appendChild(_element);
  11. _element.setAttribute("name",odrmt->name);
  12. _element.setAttribute("width",odrmt->width);
  13.  
  14. _odLdElement = parent.ownerDocument().createElement("ODLD");
  15. _element.appendChild(_odLdElement);
  16. _odLdElement.setAttribute("length",odrmt->odLD.length);
  17. _odLdElement.setAttribute("space",odrmt->odLD.space);
  18. ...
  19. }
  20. };
  21.  
  22.  
  23. class OdRmrXmlDocument
  24. {
  25. QDomDocument _document;
  26. QDomElement _element;
  27. QList<OdRmtXmlNode *> _rmtNodes;
  28.  
  29. public :
  30. OdRmrXmlDocument(QDomDocument doc, const ODRMR &odrmr) :
  31. _document(doc)
  32. {
  33. _element = doc.createElement("OdRMT");
  34. doc.appendChild(_element);
  35.  
  36. _element.setAttribute("sOffset",odrmr.sOffset);
  37. ...
  38.  
  39. foreach(ODRMT *odrmt, odrmr.odRMT) _rmtNodes<<new OdRmtNode(_element, odrmt);
  40. }
  41.  
  42. ~OdRmrXmlDocument() {qDeleteAll(_rmtNodes.begin(), _rmtNodes.end());}
  43.  
  44. QString toString(int indent = -1) const{return _document.toString(indent);}
  45. };
To copy to clipboard, switch view to plain text mode