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
分享
相关文章
讲解SSM的xml文件
本文详细介绍了SSM框架中的xml配置文件,包括springMVC.xml和applicationContext.xml,涉及组件扫描、数据源配置、事务管理、MyBatis集成以及Spring MVC的视图解析器配置。
84 1
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)
这篇文章是Spring5框架的实战教程,主要介绍了如何在Spring的IOC容器中通过XML配置方式使用外部属性文件来管理Bean,特别是数据库连接池的配置。文章详细讲解了创建属性文件、引入属性文件到Spring配置、以及如何使用属性占位符来引用属性文件中的值。
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)
Eclipse 创建 XML 文件
Eclipse 创建 XML 文件
30 2
|
2月前
|
maven项目的pom.xml文件常用标签使用介绍
第四届人文,智慧教育与服务管理国际学术会议(HWESM 2025) 2025 4th International Conference on Humanities, Wisdom Education and Service Management
167 8
|
3月前
|
java与XML文件的读写
java与XML文件的读写
33 3
|
3月前
|
C#使用XML文件的详解及示例
C#使用XML文件的详解及示例
124 0
|
4月前
|
mybatis :sqlmapconfig.xml配置 ++++Mapper XML 文件(sql/insert/delete/update/select)(增删改查)用法
当然,这些仅是MyBatis功能的初步介绍。MyBatis还提供了高级特性,如动态SQL、类型处理器、插件等,可以进一步提供对数据库交互的强大支持和灵活性。希望上述内容对您理解MyBatis的基本操作有所帮助。在实际使用中,您可能还需要根据具体的业务要求调整和优化SQL语句和配置。
75 1
AI助理

你好,我是AI助理

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