From 66fc17eb5c40568032ece0621c1ba0ffbf230b78 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Thu, 14 Mar 2019 20:21:20 -0700 Subject: Examples: properly parse more than one element in maps and lists Change-Id: I46363e5b8944459e8c48fffd158c03bca4b7394e Reviewed-by: Edward Welbourne Reviewed-by: Ulf Hermann --- examples/corelib/serialization/convert/xmlconverter.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'examples') diff --git a/examples/corelib/serialization/convert/xmlconverter.cpp b/examples/corelib/serialization/convert/xmlconverter.cpp index 62908273ce..e62801bf76 100644 --- a/examples/corelib/serialization/convert/xmlconverter.cpp +++ b/examples/corelib/serialization/convert/xmlconverter.cpp @@ -70,7 +70,7 @@ static QVariant variantFromXml(QXmlStreamReader &xml, Converter::Options options static QVariantList listFromXml(QXmlStreamReader &xml, Converter::Options options) { QVariantList list; - while (!xml.atEnd() && !xml.isEndElement()) { + while (!xml.atEnd() && !(xml.isEndElement() && xml.name() == QLatin1String("list"))) { xml.readNext(); switch (xml.tokenType()) { case QXmlStreamReader::StartElement: @@ -107,7 +107,7 @@ static QVariantList listFromXml(QXmlStreamReader &xml, Converter::Options option static VariantOrderedMap::value_type mapEntryFromXml(QXmlStreamReader &xml, Converter::Options options) { QVariant key, value; - while (!xml.atEnd() && !xml.isEndElement()) { + while (!xml.atEnd() && !(xml.isEndElement() && xml.name() == QLatin1String("entry"))) { xml.readNext(); switch (xml.tokenType()) { case QXmlStreamReader::StartElement: @@ -150,7 +150,7 @@ static QVariant mapFromXml(QXmlStreamReader &xml, Converter::Options options) QVariantMap map1; VariantOrderedMap map2; - while (!xml.atEnd() && !xml.isEndElement()) { + while (!xml.atEnd() && !(xml.isEndElement() && xml.name() == QLatin1String("map"))) { xml.readNext(); switch (xml.tokenType()) { case QXmlStreamReader::StartElement: -- cgit v1.2.3