| 169 | } |
| 170 | |
| 171 | QList<ErrorItem> XmlReportV2::read() |
| 172 | { |
| 173 | QList<ErrorItem> errors; |
| 174 | bool insideResults = false; |
| 175 | if (!mXmlReader) { |
| 176 | qDebug() << "You must Open() the file before reading it!"; |
| 177 | return errors; |
| 178 | } |
| 179 | while (!mXmlReader->atEnd()) { |
| 180 | switch (mXmlReader->readNext()) { |
| 181 | case QXmlStreamReader::StartElement: |
| 182 | if (mXmlReader->name() == ResultElementName) |
| 183 | insideResults = true; |
| 184 | |
| 185 | // Read error element from inside result element |
| 186 | if (insideResults && mXmlReader->name() == ErrorElementName) { |
| 187 | ErrorItem item = readError(mXmlReader); |
| 188 | errors.append(item); |
| 189 | } |
| 190 | break; |
| 191 | |
| 192 | case QXmlStreamReader::EndElement: |
| 193 | if (mXmlReader->name() == ResultElementName) |
| 194 | insideResults = false; |
| 195 | break; |
| 196 | |
| 197 | // Not handled |
| 198 | case QXmlStreamReader::NoToken: |
| 199 | case QXmlStreamReader::Invalid: |
| 200 | case QXmlStreamReader::StartDocument: |
| 201 | case QXmlStreamReader::EndDocument: |
| 202 | case QXmlStreamReader::Characters: |
| 203 | case QXmlStreamReader::Comment: |
| 204 | case QXmlStreamReader::DTD: |
| 205 | case QXmlStreamReader::EntityReference: |
| 206 | case QXmlStreamReader::ProcessingInstruction: |
| 207 | break; |
| 208 | } |
| 209 | } |
| 210 | return errors; |
| 211 | } |
| 212 | |
| 213 | ErrorItem XmlReportV2::readError(const QXmlStreamReader *reader) |
| 214 | { |