XML 非法字符(轉(zhuǎn)義字符)_Xml教程
推薦:powerbuilder(pb)中 xml的應(yīng)用一例powerbuilder中的數(shù)據(jù)窗口真是好的不得了,工作基本上都是圍繞它做,很高效,這幾天項(xiàng)目上需要用導(dǎo)出xml文件,就用pb9(xml導(dǎo)出導(dǎo)入功能是從powerbuilder9.0增加的功能)做了一個(gè)demo以驗(yàn)證可行性
如往常一樣,客戶發(fā)給我一個(gè)xml文件,
用來更新數(shù)碼課堂日程安排——是一個(gè)js讀取xml文件達(dá)到鼠標(biāo)經(jīng)過日歷顯示每日課程安排的效果,有類于Ajax數(shù)據(jù)讀取(只不過數(shù)據(jù)是完全靜態(tài)更新)的腳本程序
由于是兩方來完成整個(gè)日程更新(客戶把制作頁面和更新網(wǎng)站分開),
給我的xml文件總是有問題,
由于經(jīng)常做,知道制作方在html代碼水平上還是比較初級,
所以每次更新前總要對他們給的文件校正,
果然還是有問題,
如往常一樣,我檢查文件內(nèi)容的每個(gè)標(biāo)簽是否完整,
檢查出一處錯(cuò)誤,感覺應(yīng)該OK了,
可是頁面還是顯示讀取xml數(shù)據(jù)失敗,
我又從頭到尾挨個(gè)檢查標(biāo)簽(文件還挺長,我好可憐啊,嗚嗚~~~),
居然沒有發(fā)現(xiàn)什么錯(cuò)誤,哎,眼花,郁悶~~~,
無奈之下,只好將代碼拷出來,
再挨個(gè)拷進(jìn)去,邊拷邊刷新頁面預(yù)覽效果,
來回好幾回,終于發(fā)現(xiàn)有好幾處代碼都有問題,
語法上好像沒什么錯(cuò)誤~~~,標(biāo)簽完整~~,
突然發(fā)現(xiàn)在內(nèi)容里都有“&“,可惡,
總盯著標(biāo)簽查半天,忘了可能是內(nèi)容里的字符沖突,
替換一下,果然好了,
為了詳細(xì)理解,我上 w3school 查了一下:
轉(zhuǎn)義字符
非法的 XML 字符必須被替換為實(shí)體引用(entity reference)。
在 XML 中有 5 個(gè)預(yù)定義的實(shí)體引用:
< < 小于
> > 大于
& & 和號
' ' 省略號
" " 引號
注釋:嚴(yán)格地講,在 XML 中僅有字符 "<"和"&" 是非法的。省略號、引號和大于號是合法的,但是把它們替換為實(shí)體引用是個(gè)好的習(xí)慣。
原來如此,真相大白,
只能怪自己倒霉,也怪自己對XML了解不夠
分享:存儲于xml中需要的HTML轉(zhuǎn)義代碼在數(shù)據(jù)提交到數(shù)據(jù)庫之前的簡單HTML字符轉(zhuǎn)意,防止javascript惡意代碼,因?yàn)轫?xiàng)目中用到了輸出為xml,所以在輸出之前還要進(jìn)行二次轉(zhuǎn)意,把數(shù)據(jù)庫中之前加入的br轉(zhuǎn)義為正常。
相關(guān)Xml教程:
- xml創(chuàng)建節(jié)點(diǎn)(根節(jié)點(diǎn)、子節(jié)點(diǎn))
- WML開發(fā)教程之 WAP網(wǎng)站服務(wù)器配置方法
- WMLScript的語法基礎(chǔ)
- 收集的WML Script標(biāo)準(zhǔn)函數(shù)庫
- WML教程之文本框控件Input
- 無線標(biāo)記語言(WML)基礎(chǔ)之WMLScript 基礎(chǔ)
- xml文件的結(jié)構(gòu)解讀
- 關(guān)于XSL - XSL教程
- 選擇模式 - XSL教程 - 2
- XPath入門 - XSL教程 - 3
- 匹配模式 - XSL教程 - 4
- 測試模式 - XSL教程 - 5
- 相關(guān)鏈接:
- 教程說明:
Xml教程-XML 非法字符(轉(zhuǎn)義字符)
。