应用程序崩溃与qtxml

时间:2017-04-14 23:21:39

标签: c++ xml qt qtxml

我正在使用QtXmlStreamReader编写一个从xml文件读取信息的函数,这是一个xml文件

<favorites>
  <server>
    <ip>127.0.0.1:7777</ip>
    <nickname></nickname>
    <password></password>
  </server>
  <server>
    <ip>127.1.1.1:7777</ip>
    <nickname>bdfjhd</nickname>
    <password></password>
  </server>
  <server>
    <ip>125.1.1.1:5445</ip>
    <nickname>fdkgfhfhf</nickname>
    <password></password>
  </server>
</favorites>

和我的职能:

QString FavFile::GetFavListServers()
{
    QFile file("favlist.xml");
    file.open(QIODevice::ReadOnly);
    QXmlStreamReader stream(&file);

    QString Ip;
    QString Name;
    QString Pass;

    try
    {
        while(stream.readNext() && !stream.isEndDocument())
        {
            if(stream.name() == "server")
            {
                qDebug() << "server found";

                while(stream.readNext() && !stream.isEndElement())
                {
                    if(stream.name() == "ip")
                    {
                        Ip = stream.readElementText();
                    }
                    if(stream.name() == "nickname")
                    {
                        Name = stream.readElementText();
                    }
                    if(stream.name() == "password")
                    {
                        Pass = stream.readElementText();
                    }
                }
                qDebug() << "IP: " + Ip;
            }
        }
    }
    catch(QException &ex)
    {
        qDebug() << "Bug In try";
    }

    file.close();
}

输出

  

服务器找到了   “IP:127.0.0.1:7777”   找到服务器   “IP:127.1.1.1:7777”   找到服务器   “IP:125.1.1.1:5445”

Le program s'estterminéiteitement。 ----&GT;崩溃消息

该函数返回值,但它一直崩溃:$

debug:

下级停止了因为它收到了来自操作系统的信号。

  

信号名称:SIGSEGV信号含义:分段错误

0 个答案:

没有答案