void StatTree::readNode(QTreeWidgetItem* item){ Q_ASSERT(xmlReader.isStartElement() && xmlReader.name() == "Node"); QTreeWidgetItem *node = createChildItem(item); node->setText(0, xmlReader.attributes().value("name").toString()); if(!xmlReader.tokenType() == QXmlStreamReader::EndElement) node->setIcon(0, *treeNode); else node->setIcon(0, *folderNode); while (xmlReader.readNextStartElement()) { if (xmlReader.name() == "Node") { readNode(node); } else xmlReader.skipCurrentElement(); }}
C++ (Qt) if(!xmlReader.tokenType() == QXmlStreamReader::EndElement)
node->setIcon(0, *treeNode); //рекурсия while (xmlReader.readNextStartElement()) { if (xmlReader.name() == "Node") { node->setIcon(0, *folderNode); readNode(node); } else xmlReader.skipCurrentElement(); }