先知cd——热爱生活是一切艺术的开始
写下来的都是资源,分享给互联网~~均属原创随笔。 转载引用请注明作者changedi。 喜欢应用研究,热爱编程,欢迎交流。
今天看了一下JTidy的使用,目的就是为了格式化一个不标准的html到标准的xhtml。
JTidy是一个用java写的HTML语法检查器,用JTidy可以检查并修正语法不正确的html,同时还可以对html的DOM进行分析。Xhtml和html有很多不同,其中几个主要的区别是:
1. XHTML元素必须被正确的嵌套。
2. XHTML元素必须被关闭。
3. 标签名必须用小写字幕。
4. XHTML文档必须有根元素。
想想这些限制也不无道理,这样的限制可以将html格式化为格式严谨的xml。
JTidy的使用也非常简单,短短的几行代码就可以实现从原html到格式化好的xhtml:
其中有几个问题需要说明一下。理论上,在定义了tidy对象后,调用tidy.parse(in,out)或者tidy.parseDOM(in,out)就可以完成对输入的格式化,将其输出到输出流上。Parse返回一个Node,而parseDOM返回一个Document。如果直接用InputStream和OutputStream,那么对于编码的控制上,一般只能在tidy中控制了,而Tidy的内置编码中,简体中文没有设置。用起来不方便。如何实现中文页面输入,中文页面产出是一个问题,网上提出了一种解决方法,通过利用生成一个中间UTF-8文件,在将其转到输出流上,可以完成中文的输入。另一种实现就是利用最新的JTidy实现了parse(reader,writer)方法。因为支持reader和writer,所以可以像上面的代码一样,在包装输入流和输出流的时候,进行编码的设定。这样可以利用很短的代码完成中文乱码问题的解决,同时在效率上也要高于生成中间文件的方法。
posted on 2011-04-19 21:33 changedi 阅读(1953) 评论(0) 编辑 收藏 所属分类: Java技术
Powered by: BlogJava Copyright © changedi