我正在使用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信号含义:分段错误