最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

xml 的特殊字符的處理方法

 更新時(shí)間:2016年07月07日 14:50:01   投稿:lqh  
在xml中,有一些符號(hào)作為XML 的標(biāo)記符號(hào),一些特定情況下,屬性值必須帶有這些特殊符號(hào)?!∠旅嬷饕侵v解一些常用的特殊符號(hào)的處理

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

有關(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來使用(沒有測(cè)試)。

 用實(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ì)有警告。

相關(guān)文章

最新評(píng)論

高清| 阿合奇县| 安龙县| 平武县| 建阳市| 临湘市| 盘山县| 怀宁县| 泸西县| 临安市| 丰原市| 甘孜县| 和龙市| 开江县| 丹凤县| 资中县| 长顺县| 泸定县| 洛宁县| 崇左市| 咸宁市| 尤溪县| 乡宁县| 神木县| 西青区| 湘西| 肥西县| 通山县| 德清县| 伽师县| 琼海市| 米泉市| 新晃| 宣化县| 乌兰察布市| 新龙县| 牟定县| 易门县| 石棉县| 南宁市| 海丰县|