福安網(wǎng)站定制怎么樣推廣自己的店鋪和產(chǎn)品
問(wèn)題:Mybatis提示Tag name expected
原因:
當(dāng)我們?cè)趍apper中編寫(xiě)sql語(yǔ)句的時(shí)候會(huì)發(fā)現(xiàn)使用"<“符號(hào)會(huì)提示一個(gè)Tag name
expected。這是因?yàn)閤ml文件中不識(shí)別”<"符號(hào)和“&”符號(hào)。防止與xml本身的元素命名混淆,導(dǎo)致無(wú)法解析的情況。
- 小于
<
<
相當(dāng)于 小于
<
注意:分號(hào)記得加上去
- 小于等于
≤
<=
相當(dāng)于 小于等于
<=
解決方式一:
使用預(yù)定義字符來(lái)代替,直接填寫(xiě)預(yù)定義字符:
字符 | 預(yù)定義字符 |
---|---|
< | < |
> | > |
" | " |
’ | ' |
& | & |
解決方法二:
使用 <![CDATA[ ]]>
語(yǔ)法
?CDATA說(shuō)明:
在XML中,
<![CDATA[ ]]>
是一個(gè)字符數(shù)據(jù)的語(yǔ)法,用于在XML文檔中表示純文本內(nèi)容,而不需要對(duì)其中的內(nèi)容進(jìn)行XML標(biāo)記解析。在給定的語(yǔ)法中,
<![CDATA[<=]]>
表示一個(gè)字符串“<=
”,其中字符“<”和“=”不被視為XML標(biāo)記的一部分,因?yàn)樗鼈儽话?<![CDATA[ ]]>
標(biāo)記中。這意味著XML解析器將這個(gè)字符串視為純文本數(shù)據(jù),而不會(huì)嘗試將其解釋為XML標(biāo)記或?qū)嶓w引用。CDATA標(biāo)記通常用于在XML文檔中嵌入一些包含XML保留字符或其他特殊字符的文本內(nèi)容,例如HTML代碼或JavaScript代碼等。使用CDATA標(biāo)記可以避免這些特殊字符與XML標(biāo)記語(yǔ)法沖突,同時(shí)確保它們?cè)赬ML文檔中保持原樣,而不會(huì)被解釋為XML標(biāo)記。
在方括號(hào)內(nèi) [ ] 輸入之前會(huì)報(bào)錯(cuò)的字符,比如是小于號(hào),那么就在方括號(hào)內(nèi)寫(xiě)入小于號(hào) <
如下所示:
<![CDATA[<]]>
相當(dāng)于 小于號(hào),能夠讓 xml 文件內(nèi)的小于號(hào) <
被識(shí)別,否則就會(huì)報(bào)Tag name expected
的錯(cuò)誤。
具體例子:
條件是 數(shù)據(jù)庫(kù)內(nèi)某個(gè)表 test_table 限定查詢條件是該表的字段名 number 必須是小于等于 ≤ 傳參的值 #{number}
,而且前提是傳參的 #{number}
,必須不能為 null
和空字符串 ''
<select id="getTestDate" resultType="com.test.entity.TestEntity">SELECT * FROM test_table
<where><if test="number!=null and number.trim() neq ''">AND number <![CDATA[<=]]> #{number}</if>
</where>
</select>
參考鏈接
1. Mybatis提示Tag name expected的問(wèn)題
2. Tag name expected 解決
3. idea編輯XML文件出現(xiàn):Tag name expected報(bào)錯(cuò)
4. batis映射文件xml不能使用"<",tag name expected
5. idea編輯XML文件出現(xiàn):Tag name expected報(bào)錯(cuò)