如何在QXmlStreamReader CPP中查找元素是否包含子元素

时间:2017-12-21 06:18:49

标签: c++ xml qt qxmlstreamreader

我有一个巨大的Xml文件,其元素可以是重复的,并且可以包含多个子元素。我需要一个通用代码,它可以读取所有元素及其子元素而无需硬编码。 注意:只能使用QXmlStreamReader,而不能使用QDomDocument。 谢谢!!

while (!reader.atEnd())
        {
            QString nodename;

            if (reader.isStartElement())///check if the element has chlid tags
            {
                        nodename = reader.name().toString();
                qDebug() << "NodeName is : " << nodename;
                nodevalue = reader.text().toString();
                qDebug() << "NodeValue is : " << nodevalue;
                p_rootParent->CreateChildElement(nodename,reader.text().toString());

            }
            else
            {
                while (reader.readNextStartElement())
                {
                    nodename = reader.name().toString();
                    qDebug() << "NodeName is : " << nodename;
                    nodevalue = reader.text().toString();
                    qDebug() << "NodeValue is : " << nodevalue;
                    p_rootParent->CreateChildElement(nodename, reader.text().toString());
                }
            }
        }

这是我到目前为止编写的代码,但它不起作用,任何帮助都将不胜感激。

0 个答案:

没有答案