2010-08-17 14 views

Antwort

0

Nun, hier ist eine schnelle Methode, die ich zusammen einmal warf. Es verwendet reguläre Ausdrücke, um die Aufgabe zu erledigen. Die meisten Leute werden zustimmen, dass dies kein guter Weg ist, dies zu tun. SO, verwenden Sie auf eigene Gefahr.

Dies wurde ursprünglich in meinem API-Wrapper für die Stack Overflow API verwendet. Also, es wurde nur unter einer kleinen Teilmenge von HTML-Tags getestet.

+0

Hmmm ... warum verwenden Sie nicht einfach regexp: 'replaceAll (" <[^>) +> "," ")'? – Crozin

+0

@Crozin, nun, ich habe mir selbst beigebracht, wie man die Rückbezüge benutzt, denke ich. Es sieht so aus, als würde deine wahrscheinlich auch funktionieren. – jjnguy

+0

das tut weh! -> http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contented-tags – sleeplessnerd

1

Mit Klassen, die Teil des JDK sind:

import java.io.*; 
import java.net.*; 
import javax.swing.text.*; 
import javax.swing.text.html.*; 

class GetHTMLText 
{ 
    public static void main(String[] args) 
     throws Exception 
    { 
     EditorKit kit = new HTMLEditorKit(); 
     Document doc = kit.createDefaultDocument(); 

     // The Document class does not yet handle charset's properly. 
     doc.putProperty("IgnoreCharsetDirective", Boolean.TRUE); 

     // Create a reader on the HTML content. 

     Reader rd = getReader(args[0]); 

     // Parse the HTML. 

     kit.read(rd, doc, 0); 

     // The HTML text is now stored in the document 

     System.out.println(doc.getText(0, doc.getLength())); 
    } 

    // Returns a reader on the HTML data. If 'uri' begins 
    // with "http:", it's treated as a URL; otherwise, 
    // it's assumed to be a local filename. 

    static Reader getReader(String uri) 
     throws IOException 
    { 
     // Retrieve from Internet. 
     if (uri.startsWith("http:")) 
     { 
      URLConnection conn = new URL(uri).openConnection(); 
      return new InputStreamReader(conn.getInputStream()); 
     } 
     // Retrieve from file. 
     else 
     { 
      return new FileReader(uri); 
     } 
    } 
}