diff options
Diffstat (limited to 'libs/installer_fomod/src/xmlreader.h')
| -rw-r--r-- | libs/installer_fomod/src/xmlreader.h | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/libs/installer_fomod/src/xmlreader.h b/libs/installer_fomod/src/xmlreader.h new file mode 100644 index 0000000..974d3a1 --- /dev/null +++ b/libs/installer_fomod/src/xmlreader.h @@ -0,0 +1,40 @@ +#ifndef XMLREADER_H +#define XMLREADER_H + +#include <QXmlStreamReader> + +class XmlReader : public QXmlStreamReader +{ +public: + XmlReader(QIODevice* device) : QXmlStreamReader(device) {} + + XmlReader(QByteArray array) : QXmlStreamReader(array) {} + + /** Get the next token, ignoring comments and white space text */ + TokenType readNext() + { + while (QXmlStreamReader::readNext() == Comment || isWhitespace()) { + continue; + } + return tokenType(); + } + + /** get the next element. + * + * \param start - the name of the current start element + * + * \returns false if no more elements + */ + bool getNextElement(QString const& start); + + /* Get the text associated with this token. */ + QString getText(); + + /** Print a message if we get an unexpected tag */ + void unexpected(); + + /** Read till the end of an element. Used for leaf nodes */ + void finishedElement(); +}; + +#endif // XMLREADER_H |
