Skip to content
GitLab
Explore
Projects
Groups
Topics
Snippets
Projects
Groups
Topics
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Register
Sign in
Toggle navigation
Menu
Лидия Ладыгина
qt_nodepad
Commits
7c4f0fbf
Commit
7c4f0fbf
authored
4 years ago
by
Лидия Ладыгина
Browse files
Options
Download
Patches
Plain Diff
Delete xmlparser.cpp
parent
22817337
master
No related merge requests found
Pipeline
#1447
canceled with stages
Changes
1
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
xmlparser.cpp
+0
-122
xmlparser.cpp
with
0 additions
and
122 deletions
+0
-122
xmlparser.cpp
deleted
100644 → 0
+
0
−
122
View file @
22817337
#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
This diff is collapsed.
Click to expand it.
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment
Menu
Explore
Projects
Groups
Topics
Snippets