Commit 7c4f0fbf authored by Лидия Ладыгина's avatar Лидия Ладыгина
Browse files

Delete xmlparser.cpp

parent 22817337
No related merge requests found
Pipeline #1447 canceled with stages
Showing with 0 additions and 122 deletions
+0 -122
#include "xmlparser.h"
#include <QtXml>
#include <QtWidgets>
#include <QAbstractItemModel>
#include <iostream>
XmlParser::XmlParser(QWidget* p_parent): QTreeView(p_parent) {
f_stdItemModel = new QStandardItemModel(this);
f_stdItemModel->setColumnCount(4);
f_stdItemModel->setHorizontalHeaderLabels(QStringList() << "Field" << "Oranization Name" << "Attribute" << "Value");
f_parentItem = f_stdItemModel->invisibleRootItem();
}
void XmlParser::sltLoad()
{
QString openXmlFileDirectory = QFileDialog::getOpenFileName();
f_directoryList << openXmlFileDirectory;
//parsing Xml into itself
QDomDocument domDoc;
QFile file(openXmlFileDirectory);
QStringList list = openXmlFileDirectory.split("/");
QString fName = list.last();
if (file.open(QIODevice::ReadOnly))
{
if (domDoc.setContent(&file))
{
QDomElement domElem = domDoc.documentElement();
QStandardItem *item = new QStandardItem(fName);
f_rootList << item;
f_parentItem->appendRow(item);
traverseNode(domElem, item);
}
file.close();
}
setModel(f_stdItemModel);
}
void XmlParser::traverseNode(const QDomNode& p_dNode, QStandardItem* p_item_ptr)
{
QDomNode domNode = p_dNode.firstChild();
while (!domNode.isNull())
{
if (domNode.isElement())
{
QDomElement domElement = domNode.toElement();
if (!domElement.isNull())
{
if (domElement.tagName() == "array")
{
QStandardItem *item_arr = new QStandardItem("OrgName");
QStandardItem *item_text = new QStandardItem();
f_techItem = item_text;
p_item_ptr->appendRow({item_arr, item_text});
traverseNode(domNode, item_arr);
}
else if (domElement.tagName() == "geoData")
{
QStandardItem *item_gD = new QStandardItem(domElement.tagName());
p_item_ptr->appendRow(item_gD);
traverseNode(domNode, item_gD);
}
else if (domElement.tagName() == "Name")
{
f_techItem->setText(domElement.text());
traverseNode(domNode, p_item_ptr);
}
else
{
QStandardItem *item_tag = new QStandardItem(domElement.tagName());
QStandardItem *item_text = new QStandardItem(domElement.text());
p_item_ptr->appendRow({nullptr, nullptr, item_tag, item_text});
traverseNode(domNode, p_item_ptr);
}
}
}
domNode = domNode.nextSibling();
}
}
void XmlParser::sltDropAll()
{
f_stdItemModel->clear();
f_rootList.clear();
f_directoryList.clear();
}
QList<QStandardItem*>* XmlParser::sltGetRootList()
{
return &f_rootList;
}
void XmlParser::sltSetCurrentRoot()
{
QString root = qobject_cast <QAction*>(sender())->text();
qDebug() << root;
auto p_iter = f_rootList.begin();
while (p_iter != f_rootList.end())
{
p_iter.i->t()->setFont(QFont ("MS Shell Dlg 2", 9));
qDebug() << p_iter.i->t()->text();
if(p_iter.i->t()->text() == root)
{
scrollTo(f_stdItemModel->indexFromItem(p_iter.i->t()));
p_iter.i->t()->setFont(QFont("MS Shell Dlg 2", 9, QFont::Bold));
}
p_iter++;
}
}
\ No newline at end of file
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment