做項目的時候,要加入選擇開始日期結束日期然後根據日期範圍刪選數據顯示出來的功能,於是我在mybatis的Mapper xml文件中使用where語句寫了形如:
select * from t_stuff where time < #{startTime} and time > #{endTime}
的語句。
然後居然報錯了,錯誤如下:
The content of elements must consist of well-formed character data or markup.
這個錯誤的意思是,不是一個格式良好的xml
也就是我們的書寫格式有誤,原來是因爲編譯器自動把sql語句中的小於號當成了開始標籤,那就當然會報錯了,我們只要改成如下這樣:
select * from t_stuff where time > #{endTime} <![CDATA[ and time < #{startTime} ]]>
就OK了 !
解決:
使用<![CDATA[ <= ]]>包住大於小於尖括號,使大於小於符號不被當成標籤標識讀取而報錯。
XML 元素必須遵循以下命名規則:
- 名稱可以含字母、數字以及其他的字符
- 名稱可以含字母、數字以及其他的字符
- 名稱不能以數字或者標點符號開始
- 名稱不能以字符 “xml”(或者 XML、Xml)開始
- 名稱不能包含空格
出現The content of elements must consist of well-formed character data or markup這個錯誤肯定是你的Xml文件有問題,仔細查看下即可。
比如 < pp>22 名稱中包含了空格