亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

xml 的特殊字符的處理方法

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

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

有關(guān)序列化:

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

實(shí)體引用  字符

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

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

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

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

相關(guān)文章

  • Java中Elasticsearch的核心概念詳解

    Java中Elasticsearch的核心概念詳解

    這篇文章主要介紹了Java中Elasticsearch的核心概念詳解,Elasticsearch 是一個(gè)分布式、免費(fèi)和開放的搜索和分析引擎,適用于所有類型的數(shù)據(jù),包括文本、數(shù)字、地理空間、結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù),需要的朋友可以參考下
    2023-07-07
  • Java中equals()方法實(shí)例詳解

    Java中equals()方法實(shí)例詳解

    equals方法是java.lang.Object類的方法,下面這篇文章主要給大家介紹了關(guān)于Java中equals()方法的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-12-12
  • 用Maven打成可執(zhí)行jar,包含maven依賴,本地依賴的操作

    用Maven打成可執(zhí)行jar,包含maven依賴,本地依賴的操作

    這篇文章主要介紹了用Maven打成可執(zhí)行jar,包含maven依賴,本地依賴的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-08-08
  • SpringBoot自定義/error路徑失效的解決

    SpringBoot自定義/error路徑失效的解決

    這篇文章主要介紹了SpringBoot自定義/error路徑失效的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • Spring依賴注入多種類型數(shù)據(jù)的示例代碼

    Spring依賴注入多種類型數(shù)據(jù)的示例代碼

    這篇文章主要介紹了Spring依賴注入多種類型數(shù)據(jù),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • Java實(shí)現(xiàn)SSH模式加密

    Java實(shí)現(xiàn)SSH模式加密

    這篇文章主要介紹了Java實(shí)現(xiàn)SSH模式加密的相關(guān)資料,需要的朋友可以參考下
    2016-01-01
  • Java編程WeakHashMap實(shí)例解析

    Java編程WeakHashMap實(shí)例解析

    這篇文章主要介紹了Java編程WeakHashMap實(shí)例解析,分享了相關(guān)代碼示例,小編覺得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-02-02
  • jdbc實(shí)現(xiàn)連接和增刪改查功能

    jdbc實(shí)現(xiàn)連接和增刪改查功能

    這篇文章主要為大家詳細(xì)介紹了jdbc實(shí)現(xiàn)連接和基本的增刪改查功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • MybatisPlus使用Wrapper實(shí)現(xiàn)條件查詢功能

    MybatisPlus使用Wrapper實(shí)現(xiàn)條件查詢功能

    這篇文章主要介紹了MybatisPlus使用Wrapper實(shí)現(xiàn)查詢功能,使用它可以實(shí)現(xiàn)很多復(fù)雜的查詢,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-06-06
  • SpringBoot項(xiàng)目使用內(nèi)置的單機(jī)任務(wù)調(diào)度功能詳解

    SpringBoot項(xiàng)目使用內(nèi)置的單機(jī)任務(wù)調(diào)度功能詳解

    這篇文章主要介紹了SpringBoot項(xiàng)目使用內(nèi)置的單機(jī)任務(wù)調(diào)度功能詳解,SpringBoot框架中提供了2個(gè)注解來(lái)讓開發(fā)者快速配置來(lái)實(shí)現(xiàn)單機(jī)定時(shí)任務(wù)調(diào)度的功能,分別是@EnableScheduling和 @Scheduled,需要的朋友可以參考下
    2024-01-01

最新評(píng)論