• 604阅读
  • 3回复

[提问]Qt读取包含特殊字符的xml失败 [复制链接]

上一主题 下一主题
离线wuzhiyuyjxk
 

只看楼主 倒序阅读 楼主  发表于: 2023-06-19
回复本帖可获得10RMB金钱奖励!
每人最多可获奖1次,奖池剩余20RMB金钱 (中奖几率10%)
xml属性中包含<>,例子如下:
<item infoaddr="44572" devno="16" pointno="028" type="UShort" ratio="0" max="2"     default="0" min="0" profname="remote_debug" name="远程调试通道" screen_disp="远调通道" describe="远调通道<0:禁用, 1:COM1, 2:NET2>" />
其中标红的内容就是问题段。
分别使用了QXmlStreamReader 和QDomDocument两种方式读取,QXmlStreamReader问题之前的都能读取,但是到了问题段next后就.atEnd()了。而使用QDomDocument根本都无法加载。后来经过排查是xml的属性中包含了‘<’、‘>’这两个特殊字符。
后来我尝试使用了tinyxml库可以正确读取打开,请问Qt就一直存在这个问题,还是有什么其他方式或接口设置可以读取特殊符号
离线fsu0413

只看该作者 1楼 发表于: 2023-06-22
xml本身的问题 应该转义,转义字符论坛打不出来,会被论坛转义
离线fsu0413

只看该作者 2楼 发表于: 2023-06-22
<shift+7>lt<分号> 是 '<'
<shift+7>gt<分号> 是 '>'
离线wuzhiyuyjxk

只看该作者 3楼 发表于: 2023-07-04
其实我也知道特殊字符需要转义,问题是这个xml是三方提供的,但是特殊字符怎么就没经过转义保存到xml里的,鬼知道之后还会不会有这样的,所以为了保证以后程序稳定,别读取失败,所以我在纠结是继续使用Qt自带的xml库还是更换tinyxml(如果更换这个,动静有点大)
快速回复
限100 字节
 
上一个 下一个