ravenix

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

          使用dtdparser解析中文dtd

          Posted on 2005-08-22 21:02 ravenix 閱讀(1359) 評論(1)  編輯  收藏 所屬分類: XML-XSL-FO

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

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

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

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

          并且將dtd文件以utf-8格式保存。別的編碼格式也可以試試,但我不想冒險。

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

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

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

          其中以Reader為參數的沒有編碼問題,因為reader本身已經指定了字符集。

          以File為參數的構造器內部使用了new FileReader(in),這個方式使用系統默認字符集,不要用它,可以用FileInputStream和InputStreamReader來指定字符集,傳遞給以Reader為參數的構造器。

          以URL為參數的構造器內部使用了new InputStreamReader(in.openStream()),沒有指定字符集,我們可以給它增加一個帶有String charsetName參數的構造器,內部調用new InputStreamReader(in.openStream(), charsetName)


          評論

          # re: 使用dtdparser解析中文dtd  回復  更多評論   

          2008-02-29 16:46 by point
          請問您如何能不能貼出來一個修改過的供大家下載,謝謝。
          主站蜘蛛池模板: 宜昌市| 洛川县| 巴彦淖尔市| 通道| 定南县| 鞍山市| 商水县| 当雄县| 沅江市| 龙里县| 瓮安县| 巩义市| 吐鲁番市| 司法| 元氏县| 龙里县| 淮安市| 台北市| 平原县| 太白县| 新丰县| 临城县| 衡南县| 西乌珠穆沁旗| 黄大仙区| 梁平县| 房产| 阿巴嘎旗| 西充县| 道孚县| 迁西县| 辽中县| 湖州市| 大埔县| 惠来县| 夏邑县| 卢湾区| 阿尔山市| 天津市| 麦盖提县| 宁强县|