Java - AWT/Swing

HTML-Dokument parsen

Im Beispiel wird ein HTML-Dokument zu reinem Text konvertiert (naja, lediglich das <br>-Tag wird berücksichtigt):


package com.sowas.javawiki.snippets;
 
import java.io.Reader;
import java.io.StringReader;
 
import javax.swing.text.EditorKit;
import javax.swing.text.MutableAttributeSet;
import javax.swing.text.html.HTML;
import javax.swing.text.html.HTMLDocument;
import javax.swing.text.html.HTMLEditorKit;
 
public class HtmlToText {
 
   public static String getText(String html) {
      final StringBuffer sb = new StringBuffer(1000);
 
      try {
         // Erstellen eines HTML Dokuments mit Parser:
         HTMLDocument doc = new HTMLDocument() {
            public HTMLEditorKit.ParserCallback getReader(int pos) {
               return new HTMLEditorKit.ParserCallback() {
                  @Override
                  public void handleText(char[] data, int pos) {
                     sb.append(data);
                  }
                  @Override
                  public void handleSimpleTag(HTML.Tag tag, MutableAttributeSet set, int pos) {
                     if (tag.toString().equals("br"))
                        sb.append('\n');
                  }
                  // Es gibt noch weitere Handler!
               };
            }
         };
 
         // Den Html-Text parsen:
         EditorKit kit = new HTMLEditorKit();
         Reader rd = new StringReader(html);
         kit.read(rd, doc, 0);
      } catch (Exception e) {
         e.printStackTrace();
      }
 
      return sb.toString();
   }
 
 
   public static void main(String[] args){
      System.out.println(getText("<html><body>T<b>e</b>st<br>Test2</body></html>"));  
   }
}

Eigene Werkzeuge
Werkzeuge

gratis Counter by GOWEB
seit 9.10.2007