2009-03-23 6 views

Antwort

1

Dies ist der Code, den ich zu erreichen verwendet, um genau das, was Sie‘ Ich mag es, aber zuerst möchte ich Ihnen ein paar Tipps geben.

Wenn Sie sich in einer Java Swing-Umgebung befinden, stellen Sie sicher, dass Sie die Methoden in den Paketen javax.swing.text.html und javax.swing.text.html.parser verwenden. Leider sind sie hauptsächlich für den Einsatz auf einem JEditorPane gedacht, aber ich empfehle dringend, dass Sie sich diese ansehen.

Es gibt eine Klasse in der Java 6-API namens HTML.Tag, die die HTML-Start- und End-Tags identifiziert, die Sie dann verwenden können, um festzulegen, wo die Links für Ihr Programm sein sollen. http://java.sun.com/javase/6/docs/api/javax/swing/text/html/HTML.Tag.html

Wenn ich ein Programm sehr ähnlich wie diese schrieb, habe ich drei Hauptmethoden:

public void handleStartTag(HTML.Tag t, MUtableAttributeSet atts, int pos) 
public void handleEndTag(HTML.Tag t, int pos) 
public void handleText(char[] text, int pos) 

Wenn Sie weitere Hilfe zu benötigen, wie diese Methoden zu schreiben, können Sie mir Nachricht, aber im Grunde, Sie sind Suchen Sie nach einem Anfangs-Tag und einem End-Tag und dann haben Sie die URL identifiziert und dann können Sie mit dem nächsten Schritt fortfahren, der der URL folgt.

Um der URL zu folgen, rate ich Ihnen, das JEditorPane-Objekt zu verwenden. Das javax.swing.event.Die HyperlinkListener-Schnittstelle definiert nur eine Methode, hyperlinkUpdate (HyperlinkEvent e), an die Sie die URL übergeben können, und ruft dann .setPage (evt.getURL()) für Ihr JEditorPane-Objekt auf. Dadurch wird der Bereich mit der neuen Seite aktualisiert und Sie können den Prozess erneut starten.

Msg mich, wenn Sie irgendwelche Probs haben und bitte stimmen Sie diese Antwort!

2

Möchten Sie dies als einmalige Bearbeitungsaufgabe tun, oder benötigen Sie eine systematische (d. H. Code-) Implementierung? Suchen Sie im zweiten Fall eine Java-HTML-Parser-Implementierung, und führen Sie die DOM-Struktur durch.

http://java-source.net/open-source/html-parsers

+0

Ich muss dies mit einigen Java-Code tun. –

+0

http://www.benmccann.com/dev-blog/java-html-parsing-library-comparison/ – trunkc

0

Wenn Ihre Datei ein XHTML-Dokument ist, ist es ein Standard-XML-Dokument und der Bast Weg, es zu analysieren jdom verwendet. JDom ist sehr leistungsfähig und einfach zu bedienen und zu verstehen. Wenn Sie ein HTML-Dokument haben, können Sie versuchen htmlparser, insbesondere die Klasse LinkTag.

0

Sie Rhino verwenden können, dann die HTML-Datei laden. Sobald es geladen ist, können Sie mit getElementBy zu jedem Knoten gehen oder Wert erhalten.

0

Ich würde mir tagsoup anschauen, die einen DOM-Baum aus jedem HTML-Dokument erstellen wird, sogar die nicht-konforme.

Dann XPath verwenden und iterieren die NodeList zurück von:

// einem

und

// img

0

Ich habe die Neko HTML Parser erfolgreich für diese Art von Sache verwendet (Screen Scraping).

 
import org.cyberneko.html.parsers.DOMParser; 
import org.w3c.dom.Node; 

public class TestParser { 

    public static void main(String[] argv) throws Exception { 
      DOMParser parser = new DOMParser(); 
      for (int i = 0; i
Verwandte Themen