A classe ParserDelegator junto com a interface HTMLEditorKit.ParserCallback do pacote ‘javax.swing.text.html’ permite o reajuste de um texto em HTML para um texto comum, ajustando todas as tags de acentuação e retirando todas as demais tags. Vamos criar uma classe que será responsável por isso, veja abaixo:
public class HtmlToText extends HTMLEditorKit.ParserCallback { private StringBuilder s; public HtmlToText() { } public String parse(String texto) throws Exception { byte[] dados = texto.getBytes(); ByteArrayInputStream bais = new ByteArrayInputStream(dados); Reader reader = new InputStreamReader(bais); return parse(reader); } public String parse(Reader in) throws IOException { s = new StringBuilder(); ParserDelegator delegator = new ParserDelegator(); delegator.parse(in, this, Boolean.TRUE); return getText(); } @Override public void handleText(char[] text, int pos) { s.append(text); s.append("n"); } public String getText() { return s.toString(); } }
Para utilizarmos segue o exemplo:
String html = "<p><div>Correções Monitor 1.0.0.43:</div>"; HtmlToText htmlToText = new HtmlToText(); try { htmlToText.parse(texto); System.out.println(htmlToText.getText()); // Saida do sistema: "Correções Monitor 1.0.0.43:" } catch (Exception e) { e.printStackTrace(); }
Se você for fazer no Android existe uma maneira mais simples veja:
Android – Remover tags HTML de uma String (How to remove HTML from String)
Java – Remover tags HTML de uma String (How to remove HTML from String)
2 pensou em “Java – Remover tags HTML de uma String (How to remove HTML from String)”