zoukankan      html  css  js  c++  java
  • 用<![CDATA[]]>将xml转义为 纯文本

    在xml中,mapper文件中无法使用大小于符号,特殊符号的问题解决。
    被这个标记所包含的内容将表示为纯文本,比如表示文本内容“<”。

      此标记用于xml文档中,我们先来看看使用转义符的情况。我们知道,在xml中,”<”、”>”、”&”等字符是不能直接存入的,否则xml语法检查时会报错,如果想在xml中使用这些符号,必须将其转义为实体,如”&lt;”、”&gt;”、”&amp;”,这样才能保存进xml文档。
      在使用程序读取的时候,解析器会自动将这些实体转换回”<”、”>”、”&”。举个例子:
      <age> age < 30 </age>
      上面这种写法会报错,应该这样写:
      <age> age &lt; 30 </age>
      值得注意的是:
      (1)转义序列字符之间不能有空格;
      (2) 转义序列必须以”;”结束;
      (3) 单独出现的”&”不会被认为是转义的开始;
      (4) 区分大小写。
      
    常用转义的字符:
    (1)<   &lt;
    (2)<=  &lt;=
    (3)>   &gt;
    (4)>=  &gt;=
    (5)&   &amp;
    (6)'   &apos;
    (7)"   &quot;
    (8)(空格)  &nbsp;
      但是严格来说,在XML中只有”<”和”&”是非法的,其它三个都是可以合法存在的,但是,把它们都进行转义是一个好的习惯。
      不管怎么样,转义前的字符也好,转义后的字符也好,都会被xml解析器解析,为了方便起见,使用<![CDATA[]]>来包含不被xml解析器解析的内容。但要注意的是:
      (1) 此部分不能再包含”]]>”;
      (2) 不允许嵌套使用;
      (3)”]]>”这部分不能包含空格或者换行。
      最后,说说<![CDATA[]]>和xml转移字符的关系,它们两个看起来是不是感觉功能重复了?
      是的,它们的功能就是一样的,只是应用场景和需求有些不同:
      (1)<![CDATA[]]>不能适用所有情况,转义字符可以;
      (2) 对于短字符串<![CDATA[]]>写起来啰嗦,对于长字符串转义字符写起来可读性差;
      (3) <![CDATA[]]>表示xml解析器忽略解析,所以更快。
    

    参考博文:
    (1) https://www.cnblogs.com/catgatp/p/6403382.html
    (2) https://tool.oschina.net/commons?type=2 (html常用转义字符对照表)
    (3) https://blog.csdn.net/qq_38659629/article/details/80408185

  • 相关阅读:
    HDU 1022 Train Problem I
    HDU 1702 ACboy needs your help again!
    HDU 1294 Rooted Trees Problem
    HDU 1027 Ignatius and the Princess II
    HDU 3398 String
    HDU 1709 The Balance
    HDU 2152 Fruit
    HDU 1398 Square Coins
    HDU 3571 N-dimensional Sphere
    HDU 2451 Simple Addition Expression
  • 原文地址:https://www.cnblogs.com/jasonboren/p/11878986.html
Copyright © 2011-2022 走看看