`

html标签内容替换为纯文本

    博客分类:
  • java
 
阅读更多
在做接口的时候,有些模板xml标签不是CDATA规范的,这样就会在碰到&这样的字符出现错误,需要替换,简单的思路是字符串替换或正则匹配,将&替换成&

特别是有些专辑描述是html的内容,写入xml文件的时候需要将html内容转化为文本内容。

下面给出html内容输出为存文本的两种工具方法,方便以后查阅。

方法一:正则替换

/**
     * html转化为text
     * @param inputString
     * @return
     */
    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;
        }

方法二:采用api形式,先倒入jar包htmllexer.jar,htmlparser.jar,sitecapturer.jar,thumbelina.jar,filterbuilder.jar

public static String getHtmlText(String htmlContent) throws Exception
        {
        if(htmlContent==null)htmlContent="";
//         增加一个<br/>,经测试,如果正文为纯文本,org.htmlparser会把参数当作一个文件处理
           StringBuffer sbf = new StringBuffer("");
           sbf.append("<br />").append(htmlContent);
           Parser parser = new Parser(sbf.toString());
           TextExtractingVisitor visitor = new TextExtractingVisitor();
           parser.visitAllNodesWith(visitor);
           String sReturn = visitor.getExtractedText();
           sReturn = sReturn.replace(" ", "");//去掉空格以便统计字数
           return sReturn;
        }

分享到:
评论

相关推荐

    文本文档内容搜索批量替换工具

    标签中的“文本替换”和“文本搜索”是该工具的核心功能,允许用户快速定位并替换目标文件中的特定文本。“文档替换”则意味着这个工具不仅限于单个文件,而是可以处理整个目录或者一批选定的文件,进行大规模的文本...

    在Java中轻松将HTML格式文本转换为纯文本(保留换行)

    Jsoup是HTML解析器 lang和lang3这两个包里有转换所需的工具类 org.jsoup jsoup 1.11.3 commons-lang commons-lang 2.6 org.apache.commons commons-lang3 3.4 第二步:直接使用即可: import org.apache....

    将HTML标签外的空格替换为&nbsp;

    "将HTML标签外的空格替换为`&nbsp;`"这个操作,就是针对这样的需求。`&nbsp;`是HTML中的一个特殊字符实体,代表非中断空格(Non-Breaking Space),它不会被浏览器忽略,而是作为一个实际的空格显示在页面上。这种...

    JAVA过滤标签实现将html内容转换为文本的方法示例

    8. 使用List类型的变量来存储替换后的文本:在将html内容转换为文本时,需要将html标签替换为指定的文本。可以使用List类型的变量来存储替换后的文本,并将其返回。 本文主要介绍了使用JAVA过滤标签实现将html内容...

    在Java中轻松将HTML格式文本转换为纯文本的方法示例(保留换行)

    在将HTML格式文本转换为纯文本时,需要注意的一点是去除HTML标签。Jsoup提供了一个Whitelist类,用于定义允许的HTML标签。在本文中,我们使用Whitelist.none()方法来去除所有HTML标签。同时,使用StringEscapeUtils....

    jQuery获取标签文本内容和html内容的方法

    当使用text方法带有参数时,它会把所有匹配的元素内容替换为提供的文本内容。 例如,在上述代码示例中,当用户点击“ShowText”按钮时,通过text方法获取id为“test”的p标签中的文本内容,并通过弹窗显示出来。...

    易语言正则表达式文本替换

    - 文本转换:批量修改文本格式,如大小写转换、HTML标签替换等。 总的来说,易语言的正则表达式文本替换功能提供了强大的文本处理能力,对于需要处理和分析文本的程序开发者来说,掌握这项技能能极大地提高工作...

    Vue实现将数据库中带html标签的内容输出(原始HTML(Raw HTML))

    原始 HTML(Raw HTML) 双花括号语法,会将数据中的 HTML 转为纯文本后再进行插值。为了输出真正的 HTML,你需要使用 v-html 指令: ...span 中的内容,将会被替换为 rawHtml 属性的值,并且作为原始 HTML 插入

    对Xpath 获取子标签下所有文本的方法详解

    本文将深入探讨如何使用XPath来获取子标签下的所有文本内容。 在XML或HTML结构中,一个元素可能包含多个子元素,每个子元素又可能有各自的文本内容。有时,我们可能需要提取某个父元素下所有子元素的文本,而不仅仅...

    批量替换文本文字内容

    批量替换文本内容是提高效率的关键技巧之一,尤其对于处理大量文档时。标题“批量替换文本文字内容”揭示了这个话题的核心,即如何一次性修改多个文件中的特定文本字符串。 描述中提到的是一款小巧的批量替换工具,...

    java过滤html标签获取纯文本信息的实例

    本实例的代码封装在FilterHtmlUtil类中,提供了一个静态方法Html2Text用于将传入的包含HTML标签的字符串,过滤标签后返回纯文本内容。这个工具类可以在需要从HTML内容中提取文本的任何Java程序中使用。 总结来说,...

    超级批量文本替换工具

    【超级批量文本替换工具】是一种高效实用的软件,专为处理大量文本文件中的内容替换而设计。在IT行业中,尤其是在编程、网站维护、文档管理等领域,我们常常需要对多个文件进行相同或相似的文本替换操作,例如修改...

    一键批量替换文本工具

    【标题】:“一键批量替换文本工具”是一款专为需要大量文本内容修改的用户设计的高效软件,尤其适合网站管理员或内容创作者使用。它简化了文本处理的过程,通过一键操作即可实现对多个文件或整个文件夹内文本内容的...

    超级批量文本替换工具(UltraReplace)

    批量文本替换是一项关键任务,特别是在需要更新网站内容、统一代码风格或修复错误时。UltraReplace通过其强大的搜索和替换功能,使得这一过程变得轻松快捷。用户可以设置自定义的搜索条件和替换规则,不仅限于简单的...

    个人站长超级文本替换工具

    【个人站长超级文本替换工具】是一款专为程序员和网站管理员设计的强大工具,它极大地提高了文本处理的效率,尤其是在需要批量替换大量文件中的特定文本时。这个工具以其高速度和高效能著称,对于处理大型文本文件...

    asp.net 剔除文本中的html标签 demo

    在这种情况下,为了安全性和展示效果,我们可能需要剔除文本中的HTML标签,使其变为纯文本格式。本示例("asp.net 剔除文本中的html标签 demo")就是针对这种情况提供的一种解决方案,适用于ASP.NET 3.5框架。 首先...

    SQl去掉HTML标签函数

    SQl去掉HTML标签函数 彻底防止SQL注入

    Java中替换HTML标签的方法代码

    替换字符串`\n\t`用于将每个标签替换为一个制表符(`\t`)后面的新行(`\n`),这样可以将HTML结构转换为易于阅读的文本格式。 在代码的最后,`System.out.println()`用于打印替换后的字符串,展示替换操作的效果。...

    匹配html中的所有A标签并替换

    1. HTML标签:HTML(HyperText Markup Language)是一种用于创建网页的标准标记语言,`&lt;a&gt;`标签是HTML中的超链接标签,用于定义链接到其他网页或资源的元素。它的基本结构是`链接文字&lt;/a&gt;`,其中`href`属性指定链接...

    非常好的文本替换工具,直接很多种格式

    标签“文本替换”进一步明确了这个工具的主要功能,即搜索和替换文本。在编程、文档编辑、数据整理等领域,文本替换是经常需要用到的操作,例如,统一修改代码中的某个变量名、更新大批量文档的版权信息等。 在...

Global site tag (gtag.js) - Google Analytics