格式化c或Qt中的XML文件

格式化c或Qt中的XML文件,第1张

概述我有一个xml文件,其中输出没有格式化.这意味着所有输出都在一行中,但我想逐个标记地打破它. 对于例如 – <?xml version="1.0" encoding="UTF-8" standalone="no" ?><Analyser> <JointDetails> <Details><StdThickness> T </StdThickness><Thicknes 我有一个xml文件,其中输出没有格式化.这意味着所有输出都在一行中,但我想逐个标记地打破它.

对于例如 –

<?xml version="1.0" enCoding="UTF-8" standalone="no" ?><Analyser>   <JointDetails>              <Details><StdThickness> T </StdThickness><Thickness_num> 0.032 </Thickness_num></Details>   </JointDetails></Analyser>

但我想这样做::

<?xml version="1.0" enCoding="UTF-8" standalone="no" ?><Analyser>   <JointDetails>   <Details><StdThickness> T </StdThickness><Thickness_num> 0.032 </Thickness_num></Details>   </JointDetails></Analyser>

请不要建议在写入XML文件时这样做,因为这个xml文件已经存在,但现在我必须按上面提到的格式化它.

提前致谢 .

解决方法 使用QXmlStreamReader和QXmlStreamWriter可以做你想要的. QXmlStreamWriter :: setautoFormatting(true)将在不同的行上格式化XML并使用正确的缩进.使用QXmlStreamReader :: isWhitespace(),您可以过滤掉标记之间多余的空格.
QString xmlin = "<?xml version=\"1.0\" enCoding=\"UTF-8\" standalone=\"no\" ?>"                "<Analyser><JointDetails>              <Details><StdThickness>"                " T </StdThickness><Thickness_num> 0.032 </Thickness_num>"                "</Details>   </JointDetails></Analyser>";QString xmlOut;QXmlStreamReader reader(xmlin);QXmlStreamWriter writer(&xmlOut);writer.setautoFormatting(true);while (!reader.atEnd()) {    reader.readNext();    if (!reader.isWhitespace()) {        writer.writeCurrentToken(reader);    }}qDeBUG() << xmlOut;
总结

以上是内存溢出为你收集整理的格式化c或Qt中的XML文件全部内容,希望文章能够帮你解决格式化c或Qt中的XML文件所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1258320.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存