C++ Qt-XML读取元素并仅获取根

C++ Qt-XML读取元素并仅获取根,c++,xml,qt,qt5.3,qxmlstreamreader,C++,Xml,Qt,Qt5.3,Qxmlstreamreader,我有一个关于读取XML文件的问题: <table> <100000 /> <100001 name="void" type="ref" cat="ref"/> <100002 name="noref" type="err" cat="ref"/> <100003 name="notype" type="err" cat="ref"/> <100004 name="nostring" type

我有一个关于读取XML文件的问题:

<table>
    <100000 />
    <100001 name="void" type="ref" cat="ref"/>
    <100002 name="noref" type="err" cat="ref"/>
    <100003 name="notype" type="err" cat="ref"/>
    <100004 name="nostring" type="err" cat="ref"/>
    <100005 name="noobj" type="err" cat="ref"/>
 </table>

列表中唯一包含的是“table”(开始元素)。我想这可能很简单,但我不明白

该文件不是有效的XML。XML元素的名称不能以数字开头

引用第2.3节:

[代码>[4]4]名名名[4]名名[4]名[4]名名[4]名名[4]名名[4]名名[4]名名名[4]名名名[4]名名名名[4]名[4]名[4]名[4]名[4]名[4]名[4]名[4]名[4]名[4]名[4]名[4]名[4]名[4]名[4]名[4]名[4]名[4]名[4]名[4]名[4]名[4]名[4]名[4]名[4]名[4]名[4]名[4]名[4]名[4]名[4]名[4]名[4]名[4]名[4]名[4]名[4]名[4]名]名]名名]名]名名名名名名名名名名名名名名名名名名名名名名#x2C00-#x2FEF]|[#x3001-#xD7FF]|[#xF900-#xFDCF]|[#xFDF0-#xFFFD]|[#x10000-#xEFFFF] [4a]NameChar::=NameStartChar |“-“|”[0-9]|#xB7 |[#x0300-#x036F]|[#x203F-#x2040] [5] 名称::=NameStartChar(NameChar)* 由于
QXmlStreamReader
设计为只读取格式良好的XML文档,因此您得到的是技术上未定义的行为。读者可能只是在尽力应付

QList<QString> xmlActions::GetXMLID (QFile *XMLIndex)
{
   QList<QString> xList;

   if (XMLIndex->open(QIODevice::ReadOnly))
   {
        QXmlStreamReader reader (XMLIndex->readAll());
        XMLIndex->close();
        while(!reader.atEnd() && !reader.hasError())
            {
            QXmlStreamReader::TokenType token = reader.readNext();
            if(token == QXmlStreamReader::StartElement)
            {
                if(reader.name().toString() == QLatin1String("table"))
                {
                   continue;
                }

                xList << reader.name().toString();
            }
        }
   }
   return xList;
}
if(reader.name().toString() == QLatin1String("table"))
{
    continue;
}