Guest User

Untitled

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