Advertisement
Guest User

Untitled

a guest
Dec 1st, 2018
253
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.93 KB | None | 0 0
  1. #include <QCoreApplication>
  2. #include <QDomDocument>
  3. #include <QtDebug>
  4.  
  5. void parse_xml(const QDomNode &root)
  6. {
  7.     qDebug() << root.toElement().tagName();
  8.  
  9.     QVector<QDomNode> queue;
  10.     auto childs = root.childNodes();
  11.     for (int i = 0; i < childs.size(); i++)
  12.     {
  13.         auto node = childs.item(i);
  14.         if (node.nodeType() == QDomNode::TextNode)
  15.             qDebug() << node.toText().data();
  16.         else
  17.             queue.push_back(node);
  18.     }
  19.  
  20.     for (const auto &node : queue)
  21.         parse_xml(node);
  22. }
  23.  
  24. int main(int argc, char *argv[])
  25. {
  26.     QCoreApplication a(argc, argv);
  27.  
  28.     QString xml(
  29. R"(
  30. <тэг1>
  31.    Текст 1.
  32.    <тэг2>
  33.        Текст 4.
  34.    </тэг2>
  35.    Текст 2.
  36.    <тэг3>
  37.        Текст 5.
  38.    </тэг3>
  39.    Текст 3.
  40. </тэг1>
  41. )");
  42.  
  43.     QDomDocument doc;
  44.     doc.setContent(xml);
  45.     parse_xml(doc.firstChild());
  46.  
  47.     return a.exec();
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement