段博煜
侠客
侠客
  • UID16257
  • 粉丝0
  • 关注2
  • 发帖数9
阅读:896回复:0

【6.0后端平台】- dm文件中特殊符号问题

楼主#
更多 发布于:2024-06-26 09:45

XML文件中,<>&" ' 等特殊字符需要被转义,因为它们在XML中有特定的含义(例如,< 用于定义元素的开始,& 用于实体引用等)。如果你直接在XML文本内容中使用这些字符,解析器会抛出错误。
异常信息如图:


异常符号对应代码:


关于特殊符号有两种解决方案:
1.      CDATA DATA 指的是不应由 XML 解析器进行解析的文本数据,在 XML 元素中,“<” “&” 是非法的。“<” 会产生错误,因为解析器会把该字符解释为新元素的开始。“&” 也会产生错误,因为解析器会把该字符解释为字符实体的开始。某些文本,比如 JavaScript 代码,包含大量 “<” “&” 字符。为了避免错误,可以将脚本代码定义为 CDATA
·         CDATA 部分中的所有内容都会被解析器忽略。
·         CDATA 部分由 “<![CDATA[” 开始,由 ”]]>” 结束。
如:<property><![CDATA["&&&&&&<<<<<<<"]]></property>
     这样就会被解析器忽略&&&&&&<<<<<<<,不会发生报错
代码示例:



对应代码如下:



    <database id="select" resultMap="java.util.HashMap" description="查询测试">
        <![CDATA[
            select * from demo_vacate
            where 1 = 1
            #if ($P.name and $P.name!='')
                and name like %:name%
            #end
        
            #if ( $P.timeend and $P.timeend!='' )
                and timeend < :timeend
            #end
        ]]>
    </database>



2.      其它方法:特殊字符转义(本项目无效)
以下是这些特殊字符的转义序列:
·         < 替换为 &lt;
·         > 替换为 &gt;
·         & 替换为 &amp;
·         " 替换为 &quot;
·         ' 在属性值中可以直接使用,但在属性之外使用时建议也转义为 &apos; &#39;(尽管不是所有XML解析器都支持&apos;
[段博煜于2024-06-27 07:55编辑了帖子]
游客

返回顶部