summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Boddie <david.boddie@nokia.com>2011-04-27 16:12:16 (GMT)
committerDavid Boddie <david.boddie@nokia.com>2011-04-28 17:03:22 (GMT)
commit728d4798fa38abf04c682d955abe6325f7599fa0 (patch)
tree4ce7d2fd6ee5b7d3565a7b10d91c536f5ab65b7f
parent539311f7b2687e3148ea695ce06fee768abe7b44 (diff)
downloadQt-728d4798fa38abf04c682d955abe6325f7599fa0.zip
Qt-728d4798fa38abf04c682d955abe6325f7599fa0.tar.gz
Qt-728d4798fa38abf04c682d955abe6325f7599fa0.tar.bz2
Doc: Added a code snippet to clarify the use of a function.
Task-number: QTBUG-18888
-rw-r--r--doc/src/snippets/xml/streamreader/traverse.cpp78
-rw-r--r--doc/src/snippets/xml/streamreader/traverse.pro2
-rw-r--r--src/corelib/xml/qxmlstream.cpp5
3 files changed, 85 insertions, 0 deletions
diff --git a/doc/src/snippets/xml/streamreader/traverse.cpp b/doc/src/snippets/xml/streamreader/traverse.cpp
new file mode 100644
index 0000000..25b64eb
--- /dev/null
+++ b/doc/src/snippets/xml/streamreader/traverse.cpp
@@ -0,0 +1,78 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QCoreApplication>
+#include <QFile>
+#include <QStringList>
+#include <QXmlStreamReader>
+
+#include <iostream>
+
+class Traverse
+{
+ Q_DECLARE_TR_FUNCTIONS(Traverse)
+};
+
+int main(int argc, char *argv[])
+{
+ QCoreApplication app(argc, argv);
+
+ if (app.arguments().count() != 2) {
+ std::cerr << qPrintable(Traverse::tr("Usage: traverse <XML file>")) << std::endl;
+ return 1;
+ }
+
+ QFile file(app.arguments()[1]);
+ if (!file.open(QFile::ReadOnly)) {
+ std::cerr << qPrintable(Traverse::tr("Failed to open file: %1").arg(app.arguments()[1])) << std::endl;
+ return 1;
+ }
+
+ //! [traverse document]
+ QXmlStreamReader xs(&file);
+ while (!xs.atEnd()) {
+ if (xs.readNextStartElement())
+ std::cout << qPrintable(xs.name().toString()) << std::endl;
+ }
+ //! [traverse document]
+
+ file.close();
+ return 0;
+}
diff --git a/doc/src/snippets/xml/streamreader/traverse.pro b/doc/src/snippets/xml/streamreader/traverse.pro
new file mode 100644
index 0000000..e98e6f3
--- /dev/null
+++ b/doc/src/snippets/xml/streamreader/traverse.pro
@@ -0,0 +1,2 @@
+QT -= gui
+SOURCES = traverse.cpp
diff --git a/src/corelib/xml/qxmlstream.cpp b/src/corelib/xml/qxmlstream.cpp
index 2ef0386..e19a498 100644
--- a/src/corelib/xml/qxmlstream.cpp
+++ b/src/corelib/xml/qxmlstream.cpp
@@ -646,6 +646,11 @@ QXmlStreamReader::TokenType QXmlStreamReader::tokenType() const
parser has reached the end element, the current element becomes the parent
element.
+ You can traverse a document by repeatedly calling this function while
+ ensuring that the stream reader is not at the end of the document:
+
+ \snippet doc/src/snippets/xml/streamreader/traverse.cpp traverse document
+
This is a convenience function for when you're only concerned with parsing
XML elements. The \l{QXmlStream Bookmarks Example} makes extensive use of
this function.