以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 DOM/SAX/XPath 』  (http://bbs.xml.org.cn/list.asp?boardid=11)
----  遇到JTidy的中文处理问题,在这里像大家请教  (http://bbs.xml.org.cn/dispbbs.asp?boardid=11&rootid=&id=7943)


--  作者:discrete
--  发布时间:5/29/2004 6:05:00 PM

--  遇到JTidy的中文处理问题,在这里像大家请教
由于是别人写了一部分的代码,似乎没有用到什么jTidy的配置文件

处理页面的函数中是以下三句代码:
 //确认在这里的ss中的中文能够打印显示
 String ss = HTMLHelper.filtHTMLChar(IOUtil.input2String(in));
 //这一步见下面的代码@2
 in = new BufferedInputStream(IOUtil.string2Input(ss));
 //在这步得到document
        return tidy.parseDOM(in, null);

代码@2
    /**
     * 从String中返回一个InputStream, 用于读取该String
     * @param s
     * @return
     */
    public static InputStream string2Input(String s) {
        byte[] b =s.getBytes();
        ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(b);
 //这步我将byteArrayInputStream中的字节读出来转化为string之后打印仍然能够正确显示中文
        return byteArrayInputStream;
    }

代码@3
 //我试图用这个函数将得到的XML转换为TXT
    private void saveXMLtoTXT(Document currentPage, BufferedWriter writer) throws IOException {
        Element root = currentPage.getDocumentElement();
 //得到所有含有文本的节点
        ArrayList nodeList = LocateAction.getAllTextNode(root);

        for (int i = 0; i < nodeList.size(); i++) {
            Node node = (Node) nodeList.get(i);
            String text = node.getNodeValue();
     //这步打印出来就是乱码了~~~~
            System.out.println("text = " + text);
            writer.write(text);
            writer.write("\r\n");
        }
        writer.close();
    }


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
7,718.750ms