posts - 12,  comments - 2,  trackbacks - 0
使用dtdparser解析中文dtd

尽管有一些不足,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)

posted on 2008-06-20 11:35 doodoosun 阅读(271) 评论(0)  编辑  收藏 所属分类: XML

只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问  
 

<2024年12月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

常用链接

留言簿(1)

随笔分类(6)

随笔档案(11)

文章分类(30)

文章档案(34)

搜索

  •  

最新评论

阅读排行榜

评论排行榜