Qt if(!doc.setContent(&file)出错

本文介绍了一种解决QDomDocument加载XML文件时遇到的问题的方法。问题表现为加载失败并提示错误位置为1行20列。通过调试发现XML声明中存在额外的空格,纠正后问题得到解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    QDomDocument doc;
    if (!doc.setContent(&file))
    {
       file.close();
       return ;
    }
执行过程中doc.setContent(&file)一直返回false,首先判断路径没错。
调试:
if(!doc.setContent(&file,true,&errorStr,&errorLine,&errorCol))
   {
       qDebug() << errorStr << "line: " << errorLine << "col: " << errorCol;
        file.close();
        return ;
   }
发现出现错误的地方是1行20列,
instruction = doc.createProcessingInstruction("xml","version=\"1.0\" encoding=\"UTF-8\"");
即encoding前面有个空格,加上就行(教程里面没有空格http://www.qter.org/forum.php?mod=viewthread&tid=189&extra=page%3D1%26filter%3Dauthor%26orderby%3Ddateline%26orderby%3Ddateline)


<?xml version='1.0' encoding='utf-8'?> <HRConfig> <LogPath Value="D:\XjsTestLog" Help="Log文件保存的路径"/> <EnableT1 value="1" Help="是否启用T1;0-不启用,1-启用"/> <CameraCount value="5" Help="相机总数"/> <TextFreq value="0" Hellp="测试时的频率"/> <MaxFreq value="0" Hellp="最大频率"/> <Pitch value="0" Hellp="间距"/> <AFThrshold value="70" Help="MTF TF曲线拟合时筛选点所用到的阈值"/> <PolynomDegree value="2" Help="多项式度,用于拟合MTF TF曲线"/> <AFUseAvg value="0" Help="寻焦焦点计算使用均值(S+T)/2 (0:不使用, 1:使用)(默认为0)"/> <AFMode value="0" Help="寻焦焦点计算模式; 0-S1, 1-T1"/> <DOFThrshold value="0" Help="DOF计算时的MTF阈值"/> <CurvesType value="2" Help="Type of Curves to Use; 0-Sag Curves Only, 1-Tan Curves Only, 2-Sag&Tan Curves"/> <CalcAngle value="0" Help="计算角度选 项,默认0所有相机ST参入"/> <MaxCorrection Enable="0" Value="0" Help="启用最大角度校正(1:启用,0:不启用)(默认:0);校正最大角度"/> <SkipGroup Enable="0" Value="1" Help="计算角度时忽略Group的标志(1-忽略,0-不忽略);计算时忽略的Group序号(离轴每4个相机一组)"/> <CameraPropertics> <Propertics CameraId="1" Azimuth="0" ImageHeight="0.001" Help="相机序号和它的方位角以及像高"/> <Propertics CameraId="2" Azimuth="45" ImageHeight="0.3" Help="相机序号和它的方位角以及像高"/> <Propertics CameraId="3" Azimuth="135" ImageHeight="0.3" Help="相机序号和它的方位角以及像高"/> <Propertics CameraId="4" Azimuth="225" ImageHeight="0.3" Help="相机序号和它的方位角以及像高"/> <Propertics CameraId="5" Azimuth="315" ImageHeight="0.3" Help="相机序号和它的方位角以及像高"/> </CameraPropertics> </HRConfig> 为啥 QDomDocument doc; if( !doc.setContent( &file ) ) // 将文件信息读到doc中 { file.close(); return false; }报错
08-12
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tt1995cc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值