日期:2014-05-17  浏览次数:20634 次

kindEditor存到mysqL数据库中的是html代码,取出的时候有没有办法将html代码过滤掉,只留下内容部分
求解啊,我要取到部分存进去的内容来做一个简略的介绍,然后取全部数据做为详细内容,但是取出来的时侯,去固定长度的字符串总是带着html标签之类的无关的代码。。。

------解决方案--------------------
网上找的一个类,没有测试过

Java code


public static String Html2Text(String inputString) { 
            String htmlStr = inputString; //含html标签的字符串 
                String textStr =""; 
          java.util.regex.Pattern p_script; 
          java.util.regex.Matcher m_script; 
          java.util.regex.Pattern p_style; 
          java.util.regex.Matcher m_style; 
          java.util.regex.Pattern p_html; 
          java.util.regex.Matcher m_html; 
       
          try { 
           String regEx_script = "<[\\s]*?script[^>]*?>[\\s\\S]*?<[\\s]*?\\/[\\s]*?script[\\s]*?>"; //定义script的正则表达式{或<script[^>]*?>[\\s\\S]*?<\\/script> } 
           String regEx_style = "<[\\s]*?style[^>]*?>[\\s\\S]*?<[\\s]*?\\/[\\s]*?style[\\s]*?>"; //定义style的正则表达式{或<style[^>]*?>[\\s\\S]*?<\\/style> } 
              String regEx_html = "<[^>]+>"; //定义HTML标签的正则表达式 
          
              p_script = Pattern.compile(regEx_script,Pattern.CASE_INSENSITIVE); 
              m_script = p_script.matcher(htmlStr); 
              htmlStr = m_script.replaceAll(""); //过滤script标签 

              p_style = Pattern.compile(regEx_style,Pattern.CASE_INSENSITIVE); 
              m_style = p_style.matcher(htmlStr); 
              htmlStr = m_style.replaceAll(""); //过滤style标签 
          
              p_html = Pattern.compile(regEx_html,Pattern.CASE_INSENSITIVE); 
              m_html = p_html.matcher(htmlStr); 
              htmlStr = m_html.replaceAll(""); //过滤html标签 
          
           textStr = htmlStr; 
          
          }catch(Exception e) { 
                   System.err.println("Html2Text: " + e.getMessage()); 
          } 
       
          return textStr;//返回文本字符串 
           }