当前位置: 首页 > 工具软件 > JTidy > 使用案例 >

xhtml怎么转换为html,JTidy将html转换成xhtml

公西飞鸾
2023-12-01

目前工作中在开发一个wap端的项目。虽然现在wap太老了。。没办法工作嘛。

不过还是遇到了很多问题。 由于wap端是用xhtml mp来开发,相对于html而言。 更佳规范更佳严谨。

上周遇到一个问题。 有一些数据是取数据库里的 clob字段。但是clob字段储存的是由word 转换成html的内容 。

里面的无论是标签还是样式 都不符合xhtml的标准。导致取出来的时候 根本前端根本显示不了。

周末在家,谷歌各种寻找 找到了 JTidy  html 解析器。带有将html转成xhtml的功能,而且配置简单,功能强大。

应该可以有效的解决我的问题。

另外通过这段代码的编码,发现我的I/O学的渣如狗啊!!!妈的 过一阵得恶补啊!

Jtidy 源码和jar包地址

下面附我的示例代码:

public String parseXhtml(String f_in){

ByteArrayInputStream stream = new ByteArrayInputStream(f_in.getBytes());

ByteArrayOutputStream tidyOutStream = new ByteArrayOutputStream();

//实例化Tidy对象

Tidy tidy = new Tidy();

//设置输入

tidy.setInputEncoding("gb2312");

//如果是true 不输出注释,警告和错误信息

tidy.setQuiet(true);

//设置输出

tidy.setOutputEncoding("gb2312");

//不显示警告信息

tidy.setShowWarnings(false);

//缩进适当的标签内容。

tidy.setIndentContent(true);

//内容缩进

tidy.setSmartIndent(true);

tidy.setIndentAttributes(false);

//只输出body内部的内容

tidy.setPrintBodyOnly(true);

//多长换行

tidy.setWraplen(1024);

//输出为xhtml

tidy.setXHTML(true);

//去掉没用的标签

tidy.setMakeClean(true);

//清洗word2000的内容

tidy.setWord2000(true);

//设置错误输出信息

tidy.setErrout(new PrintWriter(System.out));

tidy.parse(stream, tidyOutStream);

return tidyOutStream.toString();

}

下面在网上看到的一个网友兄弟发的博客内容列举了一些比较 常用的配置 (还有一大堆没列出来的, 附件里面有官网给出的配置含义,可以下载来参考 ):

add-xml-decl:是否输出“<?xml ... ?>” declaration

enclose-text:是否将所有

标签闭合

enclose-block-text:给所有文本加上

标签,使其闭合

show-errors:是否输出错误 show-warnings:是否输出警告 quote-ampersand:是否将&输 出为&

quote-marks:是否将“输出为" quote-nbsp:是否将空格输出为 

indent:是否要缩进:block-level tags indent-spaces:每次缩进的空格数

wrap:每行最多字符数,超过则自动换行,如果为0则不自动换行

char-encoding:字符编码,类似的还有output-encoding、input-encoding

literal-attributes:是否保持attribute中的空白字符不变 force-output:遇到错误是否继续输出

numeric-entities:是否将字符输出为HTML字符实体(如<、>) doctype:是否输出DOCTYPE

tidy-mark:是否要输出Jtidy的标签 drop-font-tags:是否去掉、

标签

clean:是否要清除掉多余的标签,这对处理从MS Word中复制到Html中的内容特别有效

Tidy里面这么多的配置属性,要是用户不小心设了一些互相矛盾的配置怎么办? Tidy会自动将低层次的配置调整以满足高层次配置的要求。

来源:oschina

链接:https://my.oschina.net/u/727667/blog/140055

 类似资料: