java怎么去掉html标签

这篇具有很好参考价值的文章主要介绍了java怎么去掉html标签。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

java去掉html标签的方法:
1、通过纯正则方法去掉html标签;
2、使用“javax.swing.text.html.HTMLEditorKit”去掉html标签;
3、通过使用Jsoup框架去掉html标签等等。

一.纯正则方法

import java.util.regex.Matcher; 
import java.util.regex.Pattern; 
 
public class HTMLSpirit{ 
    public static String delHTMLTag(String htmlStr){ 
        String regEx_script="<script[^>]*?>[\\s\\S]*?<\\/script>"; //定义script的正则表达式 
        String regEx_style="<style[^>]*?>[\\s\\S]*?<\\/style>"; //定义style的正则表达式 
        String regEx_html="<[^>]+>"; //定义HTML标签的正则表达式 
          
        Pattern p_script=Pattern.compile(regEx_script,Pattern.CASE_INSENSITIVE); 
        Matcher m_script=p_script.matcher(htmlStr); 
        htmlStr=m_script.replaceAll(""); //过滤script标签 
          
        Pattern p_style=Pattern.compile(regEx_style,Pattern.CASE_INSENSITIVE); 
        Matcher m_style=p_style.matcher(htmlStr); 
        htmlStr=m_style.replaceAll(""); //过滤style标签 
          
        Pattern p_html=Pattern.compile(regEx_html,Pattern.CASE_INSENSITIVE); 
        Matcher m_html=p_html.matcher(htmlStr); 
        htmlStr=m_html.replaceAll(""); //过滤html标签 
 
        return htmlStr.trim(); //返回文本字符串 
    } 
}

二.使用 javax.swing.text.html.HTMLEditorKit

import java.io.IOException;
import java.io.FileReader;
import java.io.Reader;
import java.util.List;
import java.util.ArrayList;
 
import javax.swing.text.html.parser.ParserDelegator;
import javax.swing.text.html.HTMLEditorKit.ParserCallback;
import javax.swing.text.html.HTML.Tag;
import javax.swing.text.MutableAttributeSet;
 
public class HTMLUtils {
  private HTMLUtils() {}
 
  public static List<String> extractText(Reader reader) throws IOException {
    final ArrayList<String> list = new ArrayList<String>();
 
    ParserDelegator parserDelegator = new ParserDelegator();
    ParserCallback parserCallback = new ParserCallback() {
      public void handleText(final char[] data, final int pos) {
        list.add(new String(data));
      }
      public void handleStartTag(Tag tag, MutableAttributeSet attribute, int pos) { }
      public void handleEndTag(Tag t, final int pos) {  }
      public void handleSimpleTag(Tag t, MutableAttributeSet a, final int pos) { }
      public void handleComment(final char[] data, final int pos) { }
      public void handleError(final java.lang.String errMsg, final int pos) { }
    };
    parserDelegator.parse(reader, parserCallback, true);
    return list;
  }
 
  public final static void main(String[] args) throws Exception{
    FileReader reader = new FileReader("java-new.html");
    List<String> lines = HTMLUtils.extractText(reader);
    for (String line : lines) {
      System.out.println(line);
    }
  }
}

三.使用Jsoup框架

import java.io.IOException;
import java.io.FileReader;
import java.io.Reader;
import java.io.BufferedReader;
import org.jsoup.Jsoup;
 
public class HTMLUtils {
  private HTMLUtils() {}
 
  public static String extractText(Reader reader) throws IOException {
    StringBuilder sb = new StringBuilder();
    BufferedReader br = new BufferedReader(reader);
    String line;
    while ( (line=br.readLine()) != null) {
      sb.append(line);
    }
    String textOnly = Jsoup.parse(sb.toString()).text();
    return textOnly;
  }
 
  public final static void main(String[] args) throws Exception{
    FileReader reader = new FileReader
          ("C:/RealHowTo/topics/java-language.html");
    System.out.println(HTMLUtils.extractText(reader));
  }

四.使用Apache Tika

mport java.io.FileInputStream;
import java.io.InputStream;
 
import org.apache.tika.metadata.Metadata;
import org.apache.tika.parser.AutoDetectParser;
import org.apache.tika.parser.ParseContext;
import org.apache.tika.parser.Parser;
import org.apache.tika.sax.BodyContentHandler;
import org.xml.sax.ContentHandler;
 
public class ParseHTMLWithTika {
  public static void main(String args[]) throws Exception {
 
    InputStream is = null;
    try {
 
         is = new FileInputStream("C:/Temp/java-x.html");
        WriteOutContentHandler contenthandler = new WriteOutContentHandler(100000000);
         Metadata metadata = new Metadata();
         Parser parser = new AutoDetectParser();
         parser.parse(is, contenthandler, metadata, new ParseContext());
         System.out.println(contenthandler.toString());
    }
    catch (Exception e) {
      e.printStackTrace();
    }
    finally {
        if (is != null) is.close();
    }
  }
}

注意这里经过本人实验有个小坑,WriteOutContentHandler参数是限制的字符数,这个如果不设置默认是1万,超过会报异常。

具体的jar包请自行到中央仓库里搜索依赖配置

https://search.maven.org/ 和 https://mvnrepository.com/

工具类文章来源地址https://www.toymoban.com/news/detail-646306.html

public class ResourceUtil {
    /**
     * 根据当前类路径,获取资源文件夹对应文件的所有字符串
     *
     * @param currentClass 如 this.class
     * @param resourcePath 如 /data/json/xxx.json (相对于resources文件夹)
     */
    public static String resource2String(Class currentClass, String resourcePath) throws IOException {
        return IOUtils.toString(new FileReader(new File(currentClass.getResource(resourcePath).getFile())));
    }
 
}

到了这里,关于java怎么去掉html标签的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • HTML的段落中怎么样显示出标签要使用的尖括号<>?

    很简单: 符号 用 lt; 替代; 符号 用 gt; 替代。 示例代码如下: 运行效果如下:

    2024年02月09日
    浏览(72)
  • Hive学习(11)hive去除空格或去掉字符串前后或中间的某一字符串

    问题: 需求:需要去除字符串中前N位/后N位指定字符 例如:11ABC11 MySQL中可使用以下函数解决: Hive中可使用以下函数解决: 其他函数亦可利用正则表达式规则自行变换替代。

    2024年02月12日
    浏览(42)
  • 帝国cms后台发布信息时的多图上传去掉链接a标签

    修改编辑器文件 e/admin/ecmseditor/editorfun.php 文件 里面的 $pic=\\\"\\\"; return $pic; } 改成 $pic=\\\"\\\"; return $pic; } 这样就ok

    2024年02月03日
    浏览(47)
  • 数据截取处理、富文本去除所有标签

    前提:在做项目中有个需求是填写表单后生成一份文档,文档可以编辑、保存。 这部分用富文本处理了,涉及到的逻辑就是对象--富文本标签形式 在给后端传的数据格式再把富文本标签形式--对象形式。 涉及到文字,图片、表格,以及图片表格的标题。  item就是要处理的字

    2024年01月22日
    浏览(44)
  • Element UI 中 el-input 标签去掉边框的一种办法

    最近在做一个简单的页面,想把 el-input 去掉边框,在网上找了很多方法,最终发现下边这种方法是可行的: HTML代码: 样式代码如下: 注意这里的样式语言用的是 less,其深度穿透写法是 /deep/。 由此便可去除 el-input 的外边框。

    2024年02月16日
    浏览(46)
  • Python 之 Http 获取网页的 html 数据,并去掉 html 格式等相关信息

    目录 Python之 Http 获取网页的 html 数据,并去掉 html 格式等相关信息

    2024年02月13日
    浏览(38)
  • Unity C# 之 Http 获取网页的 html 数据,并去掉 html 格式等相关信息

    目录 Unity C# 之 Http 获取网页的 html 数据,并去掉 html 格式等相关信息 一、简单介绍 二、实现原理 三、注意事项 四、效果预览  五、关键代码 Unity中的一些知识点整理。 本节简单介绍在Unity开发中的,使用 HttpClient,获取指定网页的相关信息,然后进行数据清洗,去掉html 格

    2024年02月12日
    浏览(37)
  • html去除页面的滑动条

    CSS 禁止滚动条,有4种方法,具体如下: 1、完全隐藏 在body里直接加入,可隐藏滚动条; 2、另一种方法,写在style type=\\\"text/css\\\"中

    2024年02月16日
    浏览(71)
  • 短视频平台视频怎么去掉水印?

    短视频怎么去水印,困扰很多人,例如,有些logo水印,动态水印等等,分享操作经验: 抖音作为中国最受欢迎的社交娱乐应用程序之一,已成为许多人日常生活中不可或缺的一部分。在使用抖音过程中,我们经常会遇到一些需要保存或分享的视频内容。但是,抖音的水印却

    2024年02月14日
    浏览(44)
  • 微信小程序button按钮怎么去掉边框

    代码: 结果如下: 在css样式里写入: 即可解决

    2024年04月23日
    浏览(72)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包