ravenix

          魚(yú)如何控制自己的呼吸
          posts - 7, comments - 3, trackbacks - 0, articles - 0
            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          使用dtdparser解析中文dtd

          Posted on 2005-08-22 21:02 ravenix 閱讀(1357) 評(píng)論(1)  編輯  收藏 所屬分類(lèi): XML-XSL-FO

          盡管有一些不足,wutka dtdparser 仍然是使用最廣泛的java dtd dom解析器。

          其它可用的java dtd parser有 Ronald Bourret DTD ParserMatra DTD parser

          要在DTD中使用中文,必須要在dtd文件的第一行寫(xiě)上

          <?xml version="1.0" encoding="UTF-8"?>

          并且將dtd文件以u(píng)tf-8格式保存。別的編碼格式也可以試試,但我不想冒險(xiǎn)。

          dtdparser不使用這個(gè)encoding指示來(lái)解析DTD,我們只能自己想辦法,修改它的代碼。

          dtdparser有這些構(gòu)造器(省略了帶trace的)

          DTDParser(java.io.File in)
          DTDParser(java.io.Reader in)
          DTDParser(java.net.URL in)

          其中以Reader為參數(shù)的沒(méi)有編碼問(wèn)題,因?yàn)閞eader本身已經(jīng)指定了字符集。

          以File為參數(shù)的構(gòu)造器內(nèi)部使用了new FileReader(in),這個(gè)方式使用系統(tǒng)默認(rèn)字符集,不要用它,可以用FileInputStream和InputStreamReader來(lái)指定字符集,傳遞給以Reader為參數(shù)的構(gòu)造器。

          以URL為參數(shù)的構(gòu)造器內(nèi)部使用了new InputStreamReader(in.openStream()),沒(méi)有指定字符集,我們可以給它增加一個(gè)帶有String charsetName參數(shù)的構(gòu)造器,內(nèi)部調(diào)用new InputStreamReader(in.openStream(), charsetName)


          評(píng)論

          # re: 使用dtdparser解析中文dtd  回復(fù)  更多評(píng)論   

          2008-02-29 16:46 by point
          請(qǐng)問(wèn)您如何能不能貼出來(lái)一個(gè)修改過(guò)的供大家下載,謝謝。
          主站蜘蛛池模板: 个旧市| 大渡口区| 福州市| 冷水江市| 周宁县| 临高县| 名山县| 昭苏县| 桃园市| 南川市| 陆河县| 波密县| 稻城县| 平阴县| 甘南县| 卓资县| 会东县| 宁阳县| 穆棱市| 乡城县| 定州市| 鲁山县| 类乌齐县| 公主岭市| 新营市| 明水县| 荣成市| 老河口市| 星座| 宁波市| 桐庐县| 呼伦贝尔市| 黔西县| 黑水县| 叙永县| 舒城县| 二连浩特市| 广宗县| 桃园县| 汉川市| 枞阳县|