博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
nekohtml转换html时标签变大写的问题
阅读量:5078 次
发布时间:2019-06-12

本文共 3703 字,大约阅读时间需要 12 分钟。

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;    }

 

posted on
2018-03-23 08:23 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/yesun/p/8628285.html

你可能感兴趣的文章
python语句----->if语句,while语句,for循环
查看>>
javascript之数组操作
查看>>
LinkedList源码分析
查看>>
TF-IDF原理
查看>>
用JS制作博客页面背景随滚动渐变的效果
查看>>
JavaScript的迭代函数与迭代函数的实现
查看>>
一步步教你学会browserify
查看>>
Jmeter入门实例
查看>>
亲近用户—回归本质
查看>>
中文脏话识别的解决方案
查看>>
CSS之不常用但重要的样式总结
查看>>
Python编译错误总结
查看>>
URL编码与解码
查看>>
日常开发时遇到的一些坑(三)
查看>>
Eclipse 安装SVN插件
查看>>
深度学习
查看>>
TCP粘包问题及解决方案
查看>>
构建之法阅读笔记02
查看>>
添加按钮
查看>>
移动端页面开发适配 rem布局原理
查看>>