一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務(wù)器之家 - 編程語言 - JAVA教程 - xml 的特殊字符的處理方法

xml 的特殊字符的處理方法

2020-05-26 11:46java教程網(wǎng) JAVA教程

在xml中,有一些符號作為XML 的標(biāo)記符號,一些特定情況下,屬性值必須帶有這些特殊符號。 下面主要是講解一些常用的特殊符號的處理

遇到這一方面的問題是因?yàn)槲以噲D把一個(gè)對象序列化之后存貯到xml文件中,然后從xml文件中讀取字符串,并反序列化對象(hadoop mapreduce程序中通過JobConf向tasktracker傳送對象)。

有關(guān)序列化:

 

當(dāng)我把序列化之后的數(shù)據(jù)直接存在xml中后,在解析xml時(shí)遇到解析錯(cuò)誤,原因是有非法字符。在詳細(xì)閱讀xml的說明之后才發(fā)現(xiàn):< > ' " &是不允許作為xml的PCDATA的。要使用這幾個(gè)字符,必須要把他們替換為內(nèi)建實(shí)體:

實(shí)體引用  字符

&lt; <
&gt; >
&amp; &
&quot; "
&apos; '

所以,最直接的方法就是自己控制,在寫入xml文件時(shí)把特殊字符轉(zhuǎn)為實(shí)體引用,在讀取的時(shí)候,再轉(zhuǎn)回來。當(dāng)然還有另外一個(gè)方法就是不把字符串當(dāng)PCDATA,而是當(dāng)成CDATA來使用(沒有測試)。

 用實(shí)體引用的方法太麻煩,而我的應(yīng)用xml的格式不能自己規(guī)定,所以只好尋找另外的方法:BASE64編碼。這是一種常用在網(wǎng)絡(luò)傳輸數(shù)據(jù)的編碼方式。把存在這些非法字符的字符編碼成base64編碼,就不會(huì)有這些字符了。最重要的是java api中提供了這種編碼的編碼器和解碼器,位于sun.misc的BASE64Encoder和BASE64Decoder。這樣就可以把序列化之后得到的字節(jié)流轉(zhuǎn)化成字符串了。并且也可以存貯在xml文件中。

不過這兩個(gè)類并不是sun的開放api,編譯會(huì)有警告。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产精品久久国产精品99 | 好紧好爽的午夜寂寞视频 | 香蕉eeww99国产精选播放 | 极品虎白女在线观看一线天 | 日韩一区二区三区免费 | 色综合久久日韩国产 | 国产视频一区在线观看 | 男人使劲躁女人小视频 | 福利一区二区在线观看 | 亚洲国产高清一区二区三区 | 91天堂国产在线 在线播放 | 久久99精品国产自在自线 | 国产免费精彩视频 | 成人欧美一区在线视频在线观看 | 男同志gays| 日本成熟bbxxxxxxxx | 日韩在线资源 | 日本无卡无吗中文免费 | 亚洲欧美日韩一区成人 | 91夜夜人人揉人人捏人人添 | 欧美黑人一级片 | 波多野结衣xxxxx在线播放 | 亚洲精品AV无码喷奶水糖心 | 国产 国语对白 露脸正在播放 | 放荡警察巨r麻麻出轨小说 范冰冰特黄xx大片 饭冈加奈子在线播放观看 法国老妇性xx在线播放 | 成年女人毛片免费观看中文w | 亚洲欧美成人综合在线 | 向日葵视频app下载18岁以下勿看 | 国产日产国无高清码2020 | 乌克兰bbw| 五月天91| 成人亚洲精品一区 | 啪一啪日一日 | 欧美三级不卡在线观线看高清 | 国产精品四虎在线观看免费 | 日韩在线视频在线 | avidolz性教师| 国语视频高清在线观看 | 成人观看免费观看视频 | 女人肮脏的交易中文字幕未删减版 | 亚洲高清视频在线 |