2 #include "xml-dom-parser.h"
4 ScoreXmlHandler::ScoreXmlHandler(QList<Score *> &list) : list(list)
8 int ScoreXmlHandler::parse(QString &fileName)
12 if (!file.open(QFile::ReadOnly)) {
13 qWarning() << "Unable to open :" << fileName;
16 else if (!doc.setContent(&file)) {
18 qWarning() << "Unable set content :" << fileName;
23 qDebug() << "File ready for XML : " << fileName;
26 root = doc.documentElement(); // this is for reading
28 QDomElement scoreElement = root.firstChildElement("score");
29 while (!scoreElement.isNull()) {
30 Score *score = new Score(scoreElement);
31 QDomElement holeElement = scoreElement.firstChildElement("hole");
33 while (!holeElement.isNull()) {
34 Hole *hole = new Hole(holeElement);
36 holeElement = holeElement.nextSiblingElement("hole");
39 scoreElement = scoreElement.nextSiblingElement("score");
44 int ScoreXmlHandler::save(QString &fileName)
48 root = doc.createElement("data");
49 doc.appendChild(root);
51 for (int i = 0; i < list.size(); i++) {
52 Score *score = list.at(i);
53 root.appendChild(score->toElement(doc));
56 if (!file.open(QFile::WriteOnly))
59 QTextStream ts(&file);
66 // ==========================================================
68 // ==========================================================
70 ClubXmlHandler::ClubXmlHandler(QList<Club *> &list) : list(list)
74 int ClubXmlHandler::parse(QString &fileName)
78 if (!file.open(QFile::ReadOnly)) {
79 qWarning() << "Unable to open :" << fileName;
82 else if (!doc.setContent(&file)) {
84 qWarning() << "Unable set content :" << fileName;
89 qDebug() << "File ready for XML :" << fileName;
92 root = doc.documentElement(); // this is for reading
94 QDomElement clubElement = root.firstChildElement("club");
95 while (!clubElement.isNull()) {
97 Club *club = new Club(clubElement);
99 QDomElement courseElement = clubElement.firstChildElement("course");
100 while (!courseElement.isNull()) {
102 Course *course = new Course(courseElement);
103 club->addCourse(course);
105 QDomElement holeElement = courseElement.firstChildElement("hole");
106 while (!holeElement.isNull()) {
107 Hole *hole = new Hole(holeElement);
108 course->addHole(hole);
110 holeElement = holeElement.nextSiblingElement("hole");
112 courseElement = courseElement.nextSiblingElement("course");
115 clubElement = clubElement.nextSiblingElement("club");
120 int ClubXmlHandler::save(QString &fileName)
122 QFile file(fileName);
124 root = doc.createElement("data");
125 doc.appendChild(root);
127 for (int i = 0; i < list.size(); i++) {
128 Club *club = list.at(i);
129 root.appendChild(club->toElement(doc));
132 if (!file.open(QFile::WriteOnly))
135 QTextStream ts(&file);
136 ts << doc.toString();