public static Document transferByNeko(InputStream stream, String charset)
{
if (stream == null)
return null; if(StringUtils.isEmpty(charset)){
charset = DEFAULT_CHARSET;
} //NEKOHTML的DOMParser会将html标签转化成大写,是否设置下面的配置都没有意义,解决办法是需要使用xerces的DOMParser
// DOMParser domParser = new DOMParser();
// Document doc = null;
// ByteArrayOutputStream byteOs = null;
// Writer writer = null;
// InputSource inputSource = null;
// DocumentType documentType = null;
// org.w3c.dom.Document document = null;
// DOMReader domReader = null;
// try {
// domParser.setProperty("http://cyberneko.org/html/properties/names/elems", "lower");
// domParser.setProperty("http://cyberneko.org/html/properties/names/attrs", "lower");
// domParser.setProperty("http://cyberneko.org/html/properties/default-encoding", "UTF-8");
//
// domParser.setFeature("http://xml.org/sax/features/namespaces", false);
// domParser.setFeature("http://cyberneko.org/html/features/balance-tags", true);
// domParser.setFeature("http://cyberneko.org/html/features/scanner/script/strip-comment-delims", false);
//
// byteOs = new ByteArrayOutputStream();
// writer = new Writer(byteOs, charset);
// XMLDocumentFilter domFilter[] = {
// writer
// };
// domParser.setProperty("http://cyberneko.org/html/properties/filters", domFilter);
// inputSource = new InputSource(new InputStreamReader(stream, Charset.forName(charset)));
// domParser.parse(inputSource);
// document = domParser.getDocument();
// documentType = document.getDoctype();
// if (documentType != null)
// document.removeChild(documentType);
// domReader = new DOMReader();
// doc = domReader.read(document);
// } catch (SAXNotRecognizedException e) {
// e.printStackTrace();
// } catch (SAXNotSupportedException e) {
// e.printStackTrace();
// } catch (UnsupportedEncodingException e) {
// e.printStackTrace();
// } catch (SAXException e) {
// e.printStackTrace();
// } catch (IOException e) {
// e.printStackTrace();
// }finally{
// IOUtils.closeQuietly(byteOs);
// IOUtils.closeQuietly(stream);
// } //采用xerces的DOMParser
Document doc = null;
DocumentType documentType = null;
org.w3c.dom.Document document = null;
DOMReader domReader = null;
ByteArrayOutputStream byteOs = null;
Writer writer = null;
InputSource inputSource = null;
try {
HTMLConfiguration htmlConfiguration = new HTMLConfiguration();
htmlConfiguration.setProperty("http://cyberneko.org/html/properties/names/elems","lower");
org.apache.xerces.parsers.DOMParser parser = new org.apache.xerces.parsers.DOMParser(htmlConfiguration);
inputSource = new InputSource(new InputStreamReader(stream, Charset.forName(charset)));
parser.parse(inputSource);
document = parser.getDocument();
documentType = document.getDoctype();
if (documentType != null)
document.removeChild(documentType);
domReader = new DOMReader();
doc = domReader.read(document);
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return doc;
}

nekohtml转换html时标签变大写的问题的更多相关文章

  1. Android学习之Button按钮在程序运行时全部变大写的处理

    问题: 在layout布局文件中,我们命名的按钮名称是“button1”,程序运行过后,在app上显示出来的是“BUTTON1”,先看源代码和效果: 按钮源代码: 运行效果: 解决办法: 方法一: 在 ...

  2. 三:C#对象转换Json时的一些高级(特殊)设置;

    导航目录: Newtonsoft.Json 概述 一:Newtonsoft.Json 支持序列化与反序列化的.net 对象类型:    二:C#对象.集合.DataTable与Json内容互转示例: ...

  3. PHP 将秒数转换成时分秒

    将秒数转换成时分秒,PHP提供了一个函数gmstrftime,不过该函数仅限于24小时内的秒数转换.对于超过24小时的秒数,我们应该怎么让其显示出来呢,例如 34:02:02 $seconds = 3 ...

  4. ytu 1938:首字母变大写(水题)

    首字母变大写 Time Limit: 1 Sec  Memory Limit: 64 MBSubmit: 110  Solved: 43[Submit][Status][Web Board] Desc ...

  5. PowerDesigner中转换物理模型时的命名转换

    原文:PowerDesigner中转换物理模型时的命名转换 最近在使用PowerDesigner建模数据库,在使用中积累了一些遇到的问题和解决办法,记录下来,希望对遇到同样问题的朋友有所帮助. 早 期 ...

  6. HDOJ2026首字母变大写

    首字母变大写 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Subm ...

  7. html标签data大写获取不到值:只能小写+横杠命名

    html标签data大写获取不到值:只能小写+横杠命名 例如: <i class="glyphicon glyphicon-question-sign" data-tip-t ...

  8. <!--转换office时需要此配置 --> <identity impersonate="true" />

    1.需要对Office 进行操作时 ,添加权限  <!--转换office时需要此配置 --> <identity impersonate="true" /> ...

  9. java把html标签字符转普通字符(反转换成html标签)(摘抄)

    下面是java把html标签字符转换,我用了spring 包中的 org.springframework.web.util.HtmlUtils 了解了源代码并且进步了使用,发现写得真不错...同时也可 ...

随机推荐

  1. .net设置中GridView自适应列宽

    有一个项目只有30分钟开发时间,速成,使用了古老的.net gridview. 但需要列宽自适应好看些. 于是琢磨了,实现思路如下. 先看下大致效果(很粗暴没有优化) 代码如下: protected ...

  2. 解决eclipse中java代码注释变成乱码的问题

    Eclipse JAVA文件注释乱码将别人的项目或JAVA文件导入到自己的Eclipse中时,常常会出现JAVA文件的中文注释变成乱码的情况,主要原因就是别人的IDE编码格式和自己的Eclipse编码 ...

  3. all objects of the same class share the same set of class methods

    #include <iostream> #include "First.h" void Test(); int main() { std::cerr<<&q ...

  4. sonar如何添加自定义JAVA规则

    参考: 1.https://segmentfault.com/a/1190000008659108 2.https://docs.sonarqube.org/display/DEV/Adding+Co ...

  5. 创建maven web项目无法创建sec目录

    创建maven web项目无法创建sec目录 解决方法:-DarchetypeCatalog=internal

  6. IOS是否在项目中存在,所使用的反射那点事

    NSClassFromString,NSSelectorFromString,isKingOfClass 1. NSClassFromString 这种方法推断类是否存在,假设存在就动态载入的,不存为 ...

  7. Qt 5.7 亮瞎眼的更新

    Qt 5.7的beta版已经出来了,这将是一个超级重大的更新,主要有几个商业版的模块在GPLv3 open source 版的用户也可以用了,其中包括了两个很炫酷的模块: Qt Charts Qt D ...

  8. sqlmap原理及使用方法

    1 . 介绍1.1 要求 1.2 网应用情节 1.3 SQL 射入技术 1.4 特点 1.5 下载和更新sqlmap 1.6 执照 2 . 用法2.1 帮助 2.2 目标URL 2.3 目标URL 和 ...

  9. zabbix3.x安装出现“configure: error: Not found mysqlclient library”的解决办法

    一.zabbix3.x安装出现“configure: error: Not found mysqlclient library”的解决办法 1.编译安装zabbix-server出现 编译时加参数:- ...

  10. 解决html视频播放只有声音没有图像的办法

    HTML5中并没有指定视频解码器,它留给了浏览器来决定. MP4有四种编码格式(MPEG4(DivX),MPEG4(Xvid),AVC(H264),HEVC(H265)): 只有使用AVC(H264) ...