1. 程式人生 > >mapper.xml中轉義

mapper.xml中轉義

1、用轉義字元轉義

XML轉義字元

                      <                                 

                     <

                     小於號                                           

                     &gt;

                     >                                      

                     大於號

                     &amp;

                     &

                     和

                     &apos;

                     ’

                     單引號

                     &quot;

                     "

                     雙引號

    <if test="sysuserCustom.sysmc!=null and sysuserCustom.sysmc!=''">
    and    sysmc=#{sysuserCustom.sysmc} 
    </if>
    </if>
    </where>
    
    
      )a
  where rownum &lt; #{page}*#{rows})b
 where num &gt;(#{page}-1)*#{rows}
    
    
</select>

 

2、<![CDATA[文字內容]]>

什麼是CDATA

        CDATA全名為character data,指不使用XML解析器解析的文字資料。在標記CDATA下,所有與XML規範衝突的關鍵字字串都被XML處理程式一視同仁地當做字元資料看待,CDATA的形式如下:

<![CDATA[]]>這個標記所包含的內容將表示為純文字,比如<![CDATA[<]]>表示文字內容“<”。 
  此標記用於xml文件中,我們先來看看使用轉義符的情況。我們知道,在xml中,”<””>””&”等字元是不能直接存入的,否則xml語法檢查時會報錯,如果想在xml中使用這些符號,必須將其轉義為實體,如”&lt;””&gt;””&amp;”,這樣才能儲存進xml文件。 
  在使用程式讀取的時候,解析器會自動將這些實體轉換回”<””>””&”。舉個例子: 
  <age> age < 30 </age> 
  上面這種寫法會報錯,應該這樣寫: 
  <age> age &lt; 30 </age> 
  值得注意的是: 
  (1)轉義序列字元之間不能有空格; 
  (2) 轉義序列必須以”;”結束; 
  (3) 單獨出現的”&”不會被認為是轉義的開始; 
  (4) 區分大小寫。 
   
  在XML中,需要轉義的字元有: 
  (1)&   &amp; 
  (2)<   &lt; 
  (3)>   &gt; 
  (4)"   &quot; 
  (5)'   &apos; 
  但是嚴格來說,在XML中只有”<”和”&”是非法的,其它三個都是可以合法存在的,但是,把它們都進行轉義是一個好的習慣。 
  不管怎麼樣,轉義前的字元也好,轉義後的字元也好,都會被xml解析器解析,為了方便起見,使用<![CDATA[]]>來包含不被xml解析器解析的內容。但要注意的是: 
  (1) 此部分不能再包含”]]>”; 
  (2) 不允許巢狀使用; 
  (3)”]]>”這部分不能包含空格或者換行。 
  最後,說說<![CDATA[]]>和xml轉移字元的關係,它們兩個看起來是不是感覺功能重複了? 
  是的,它們的功能就是一樣的,只是應用場景和需求有些不同: 
  (1)<![CDATA[]]>不能適用所有情況,轉義字元可以; 
  (2) 對於短字串<![CDATA[]]>寫起來囉嗦,對於長字串轉義字元寫起來可讀性差; 
  (3) <![CDATA[]]>表示xml解析器忽略解析,所以更快。

   

 

<![CDATA[]]>這個標記所包含的內容將表示為純文字,比如<![CDATA[<]]>表示文字內容“<”。 
  此標記用於xml文件中,我們先來看看使用轉義符的情況。我們知道,在xml中,”<””>””&”等字元是不能直接存入的,否則xml語法檢查時會報錯,如果想在xml中使用這些符號,必須將其轉義為實體,如”&lt;””&gt;””&amp;”,這樣才能儲存進xml文件。 
  在使用程式讀取的時候,解析器會自動將這些實體轉換回”<””>””&”。舉個例子: 
  <age> age < 30 </age> 
  上面這種寫法會報錯,應該這樣寫: 
  <age> age &lt; 30 </age> 
  值得注意的是: 
  (1)轉義序列字元之間不能有空格; 
  (2) 轉義序列必須以”;”結束; 
  (3) 單獨出現的”&”不會被認為是轉義的開始; 
  (4) 區分大小寫。 
   
  在XML中,需要轉義的字元有: 
  (1)&   &amp; 
  (2)<   &lt; 
  (3)>   &gt; 
  (4)"   &quot; 
  (5)'   &apos; 
  但是嚴格來說,在XML中只有”<”和”&”是非法的,其它三個都是可以合法存在的,但是,把它們都進行轉義是一個好的習慣。 
  不管怎麼樣,轉義前的字元也好,轉義後的字元也好,都會被xml解析器解析,為了方便起見,使用<![CDATA[]]>來包含不被xml解析器解析的內容。但要注意的是: 
  (1) 此部分不能再包含”]]>”; 
  (2) 不允許巢狀使用; 
  (3)”]]>”這部分不能包含空格或者換行。 
  最後,說說<![CDATA[]]>和xml轉移字元的關係,它們兩個看起來是不是感覺功能重複了? 
  是的,它們的功能就是一樣的,只是應用場景和需求有些不同: 
  (1)<![CDATA[]]>不能適用所有情況,轉義字元可以; 
  (2) 對於短字串<![CDATA[]]>寫起來囉嗦,對於長字串轉義字元寫起來可讀性差; 
  (3) <![CDATA[]]>表示xml解析器忽略解析,所以更快。