nekohtml转换html时标签变大写的问题
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时标签变大写的问题的更多相关文章
- Android学习之Button按钮在程序运行时全部变大写的处理
问题: 在layout布局文件中,我们命名的按钮名称是“button1”,程序运行过后,在app上显示出来的是“BUTTON1”,先看源代码和效果: 按钮源代码: 运行效果: 解决办法: 方法一: 在 ...
- 三:C#对象转换Json时的一些高级(特殊)设置;
导航目录: Newtonsoft.Json 概述 一:Newtonsoft.Json 支持序列化与反序列化的.net 对象类型: 二:C#对象.集合.DataTable与Json内容互转示例: ...
- PHP 将秒数转换成时分秒
将秒数转换成时分秒,PHP提供了一个函数gmstrftime,不过该函数仅限于24小时内的秒数转换.对于超过24小时的秒数,我们应该怎么让其显示出来呢,例如 34:02:02 $seconds = 3 ...
- ytu 1938:首字母变大写(水题)
首字母变大写 Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 110 Solved: 43[Submit][Status][Web Board] Desc ...
- PowerDesigner中转换物理模型时的命名转换
原文:PowerDesigner中转换物理模型时的命名转换 最近在使用PowerDesigner建模数据库,在使用中积累了一些遇到的问题和解决办法,记录下来,希望对遇到同样问题的朋友有所帮助. 早 期 ...
- HDOJ2026首字母变大写
首字母变大写 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Subm ...
- html标签data大写获取不到值:只能小写+横杠命名
html标签data大写获取不到值:只能小写+横杠命名 例如: <i class="glyphicon glyphicon-question-sign" data-tip-t ...
- <!--转换office时需要此配置 --> <identity impersonate="true" />
1.需要对Office 进行操作时 ,添加权限 <!--转换office时需要此配置 --> <identity impersonate="true" /> ...
- java把html标签字符转普通字符(反转换成html标签)(摘抄)
下面是java把html标签字符转换,我用了spring 包中的 org.springframework.web.util.HtmlUtils 了解了源代码并且进步了使用,发现写得真不错...同时也可 ...
随机推荐
- HDU 4639 Hehe (2013多校4 1008 水题)
Hehe Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- C# base64编码的字符串与图片互转
protected string ImgToBase64String(string Imagefilename) { try { Bitmap bmp = new Bitmap(Imagefilena ...
- 【redis】2.redis可视化工具安装使用
redis可视化工具:Redis Desktop Manager 1.redis桌面管理工具[可视化工具]下载 下载地址:https://redisdesktop.com/download 2.点击安 ...
- iOS开发--地图与定位
概览 现在很多社交.电商.团购应用都引入了地图和定位功能,似乎地图功能不再是地图应用 和导航应用所特有的.的确,有了地图和定位功能确实让我们的生活更加丰富多彩,极大的改变了我们的生活方式.例如你到了一 ...
- java POI实现Excel单元格数据换行
当我们通过POI设置了表格的列宽的时候,如果文字过长,希望文字能够自己折行显示. 截取代码如下: Workbook wb = new XSSFWorkbook(); //or new HSSFWork ...
- jquery的一次点击实现
1.项目中需要实现一个需求,第一个点击的时候允许弹出dialog对象框,第二次不允许,除非重新刷新页面 2.在js的click事件中定义一个标签属性:相当于设置一个全局变量 var auclot= ' ...
- Bootstrap导航栏实例讲解
导航栏是一个很好的功能,是 Bootstrap 网站的一个突出特点.导航栏是响应式元组件就,作为应用程序或网站的导航标题.导航栏在移动设备的视图中是折叠的,随着可用视口宽度的增加,导航栏也会水平展开. ...
- window环境下备份与恢复(实际操作)
C:\Documents and Settings\xuzhengzhu>sqlplus /nolog SQL*Plus: Release 10.2.0.1.0 - Production on ...
- 详解java中的数据结构
线性表,链表,哈希表是常用的数据结构,在进行Java开发时,JDK已经为我们提供了一系列相应的类来实现基本的数据结构.这些类均在java.util包中.本文试图通过简单的描述,向读者阐述各个类的作用以 ...
- Strategy Pattern(策略模式)
Head First定义: 策略模式定义了算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户. 策略模式的设计原则主要有三个: 找出应用中可能需要变化的部分,把它们独 ...