Guest User

Untitled

a guest
Nov 23rd, 2017
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.94 KB | None | 0 0
  1. QXmlStreamReader xmlIterator(xmlDocument);
  2. QVector<QString> output;
  3.  
  4. for(; !xmlIterator.atEnd(); xmlIterator.readNext()) {
  5. if(isStartElementOfColumnD(xmlIterator)) {
  6. while(xmlIterator.readNextStartElement()) {
  7. if(isItemElement(xmlIterator))
  8. output.append(xmlIterator.readElementText());
  9. else
  10. xmlIterator.skipCurrentElement();
  11. }
  12. }
  13. }
  14.  
  15. if(xmlIterator.hasError())
  16. qCritical() << "Error has occurred:" << xmlIterator.errorString();
  17. else
  18. qDebug() << output;
  19.  
  20. inline bool isStartElementOfColumnD(const QXmlStreamReader& xmlIterator) {
  21. return xmlIterator.isStartElement() && xmlIterator.name() == "Column" &&
  22. xmlIterator.attributes().value("title") == "D";
  23. }
  24. inline bool isItemElement(const QXmlStreamReader& xmlIterator) {
  25. return xmlIterator.name() == "item" &&
  26. xmlIterator.attributes().hasAttribute("id");
  27. }
  28.  
  29. QVector<QString> store;
  30.  
  31. [..]
  32. if (reader.readNextStartElement() && reader.name() == "Draw") {
  33. while (reader.readNextStartElement() && reader.name() == "Input") {
  34. while (reader.readNextStartElement()) {
  35. QXmlStreamAttributes attr = reader.attributes();
  36. if (reader.name() == "Column" && attr.value("title").toString() == "D") {
  37. while(!(reader.isEndElement() && reader.name() == "Column")) {
  38. if (reader.isStartElement() && reader.name() == "item") {
  39. QString text = reader.readElementText();
  40. store.append(text);
  41. }
  42. reader.readNext();
  43. if (reader.hasError()) {
  44. // Handle error.
  45. QString msg = reader.errorString();
  46. break;
  47. }
  48. }
  49. } else {
  50. reader.readNext();
  51. }
  52. }
  53. }
  54. } else {
  55. reader.raiseError("Expected <Draw> element");
  56. }
  57. [..]
Add Comment
Please, Sign In to add comment