QXmlStreamReader 读取 XML 文件卡死

简介: 如何设置使 QXmlStreamReader 能够读取 XML 文件中特殊符号

原因分析

背景
使用的 Qt 开发环境为 5.12.9 ,使用 QXmlStreamReader 读取 xml 配置文件中的代码错误及修改方案,并显示。

某次新增 xml 配置后,点击运行一直不显示窗口。查找发现 XML 文件中存在标红的字符 &&。

部分 xml 如下:

<Issue>
    <Title>...</Title>
    <Description>逻辑 '&&' 两边存在逻辑相反的表达式。<Description>
    <Code Language="Cpp">if (a && !a)</Code>
    <Solution>...</Solution>
</Issue>
AI 代码解读

xml 中常规内容无法设置为特殊字符 '&',xml 解析器会解析失败。

解决方案

1 - 使用 <![CDATA[ ]]> 标签

xml 解析器不会解析此标签中的文本信息,可以包含特殊字符。

2 - 使用转义字符 &amp;

此转义字符可以被 QXmlStreamReader 最终识别为 & 不影响正常显示。

因此,使用两种解决方法的最终结果为:

<Issue>
    <Title>...</Title>
    <Description>逻辑 '&amp;&amp;' 两边存在逻辑相反的表达式。<Description>
    <Code Language="Cpp"><![CDATA[if (a && !a)]]></Code>
    <Solution>...</Solution>
</Issue>
AI 代码解读

其他特殊字符

转义字符 字符 速记 名称
< &lt; less than 小于号
> &gt; greater than 大于号
& &amp; ampersand 与符号
' &apos; apostrophe 单引号
" &quot; quote 双引号

查到网上有很多说需要额外处理 '" 字符,但使用 Qt 5.12.9 未遇到问题。

参考链接:
https://www.jianshu.com/p/b5c76a2c1d3d

目录
打赏
0
2
3
1
5
分享
相关文章
Android自定义View之不得不知道的文件attrs.xml(自定义属性)
本文详细介绍了如何通过自定义 `attrs.xml` 文件实现 Android 自定义 View 的属性配置。以一个包含 TextView 和 ImageView 的 DemoView 为例,讲解了如何使用自定义属性动态改变文字内容和控制图片显示隐藏。同时,通过设置布尔值和点击事件,实现了图片状态的切换功能。代码中展示了如何在构造函数中解析自定义属性,并通过方法 `setSetting0n` 和 `setbackeguang` 实现功能逻辑的优化与封装。此示例帮助开发者更好地理解自定义 View 的开发流程与 attrs.xml 的实际应用。
Android自定义View之不得不知道的文件attrs.xml(自定义属性)
讲解SSM的xml文件
本文详细介绍了SSM框架中的xml配置文件,包括springMVC.xml和applicationContext.xml,涉及组件扫描、数据源配置、事务管理、MyBatis集成以及Spring MVC的视图解析器配置。
195 1
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)
这篇文章是Spring5框架的实战教程,主要介绍了如何在Spring的IOC容器中通过XML配置方式使用外部属性文件来管理Bean,特别是数据库连接池的配置。文章详细讲解了创建属性文件、引入属性文件到Spring配置、以及如何使用属性占位符来引用属性文件中的值。
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)
|
8月前
|
maven项目的pom.xml文件常用标签使用介绍
第四届人文,智慧教育与服务管理国际学术会议(HWESM 2025) 2025 4th International Conference on Humanities, Wisdom Education and Service Management
650 8
Eclipse 创建 XML 文件
Eclipse 创建 XML 文件
111 2
|
9月前
|
java与XML文件的读写
java与XML文件的读写
111 3
|
9月前
|
C#使用XML文件的详解及示例
C#使用XML文件的详解及示例
341 0

相关课程

更多
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问