<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FSwing%2FHTML_Document</id>
		<title>Java Tutorial/Swing/HTML Document - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FSwing%2FHTML_Document"/>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java_Tutorial/Swing/HTML_Document&amp;action=history"/>
		<updated>2026-04-10T10:55:46Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://jexp.ru/index.php?title=Java_Tutorial/Swing/HTML_Document&amp;diff=3813&amp;oldid=prev</id>
		<title> в 17:44, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java_Tutorial/Swing/HTML_Document&amp;diff=3813&amp;oldid=prev"/>
				<updated>2010-05-31T17:44:27Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 17:44, 31 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://jexp.ru/index.php?title=Java_Tutorial/Swing/HTML_Document&amp;diff=3814&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java_Tutorial/Swing/HTML_Document&amp;diff=3814&amp;oldid=prev"/>
				<updated>2010-05-31T15:31:23Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==  ElementIterator Class ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.BufferedReader;&lt;br /&gt;
import java.io.InputStream;&lt;br /&gt;
import java.io.InputStreamReader;&lt;br /&gt;
import java.net.URL;&lt;br /&gt;
import java.net.URLConnection;&lt;br /&gt;
import javax.swing.text.AttributeSet;&lt;br /&gt;
import javax.swing.text.html.HTML;&lt;br /&gt;
import javax.swing.text.html.HTMLDocument;&lt;br /&gt;
import javax.swing.text.html.HTMLEditorKit;&lt;br /&gt;
import javax.swing.text.html.parser.ParserDelegator;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String args[]) throws Exception {&lt;br /&gt;
    URL url = new URL(&amp;quot;http://www.google.ru&amp;quot;);&lt;br /&gt;
    URLConnection connection = url.openConnection();&lt;br /&gt;
    InputStream is = connection.getInputStream();&lt;br /&gt;
    InputStreamReader isr = new InputStreamReader(is);&lt;br /&gt;
    BufferedReader br = new BufferedReader(isr);&lt;br /&gt;
    HTMLEditorKit htmlKit = new HTMLEditorKit();&lt;br /&gt;
    HTMLDocument htmlDoc = (HTMLDocument) htmlKit.createDefaultDocument();&lt;br /&gt;
    HTMLEditorKit.Parser parser = new ParserDelegator();&lt;br /&gt;
    HTMLEditorKit.ParserCallback callback = htmlDoc.getReader(0);&lt;br /&gt;
    parser.parse(br, callback, true);&lt;br /&gt;
    for (HTMLDocument.Iterator iterator = htmlDoc.getIterator(HTML.Tag.A); iterator.isValid(); iterator&lt;br /&gt;
        .next()) {&lt;br /&gt;
      AttributeSet attributes = iterator.getAttributes();&lt;br /&gt;
      String srcString = (String) attributes.getAttribute(HTML.Attribute.HREF);&lt;br /&gt;
      System.out.print(srcString);&lt;br /&gt;
      int startOffset = iterator.getStartOffset();&lt;br /&gt;
      int endOffset = iterator.getEndOffset();&lt;br /&gt;
      int length = endOffset - startOffset;&lt;br /&gt;
      String text = htmlDoc.getText(startOffset, length);&lt;br /&gt;
      System.out.println(&amp;quot; � &amp;quot; + text);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;url?sa=p&amp;amp;pref=ig&amp;amp;pval=3&amp;amp;q=http://www.google.ca/ig%3Fhl%3Den&amp;amp;usg=__o-KrRDBI3nbRElKzYEMqfOl3_t0= � Personalize this page&lt;br /&gt;
https://www.google.ru/accounts/Login?continue=http://www.google.ca/&amp;amp;hl=en � Sign in&lt;br /&gt;
  http://images.google.ca/imghp?ie=ISO-8859-1&amp;amp;oe=ISO-8859-1&amp;amp;hl=en&amp;amp;tab=wi � Images&lt;br /&gt;
  http://groups.google.ca/grphp?ie=ISO-8859-1&amp;amp;oe=ISO-8859-1&amp;amp;hl=en&amp;amp;tab=wg � Groups&lt;br /&gt;
  http://news.google.ca/nwshp?ie=ISO-8859-1&amp;amp;oe=ISO-8859-1&amp;amp;hl=en&amp;amp;tab=wn � News&lt;br /&gt;
  /maps?ie=ISO-8859-1&amp;amp;oe=ISO-8859-1&amp;amp;hl=en&amp;amp;tab=wl � Maps&lt;br /&gt;
  http://scholar.google.ru/schhp?ie=ISO-8859-1&amp;amp;oe=ISO-8859-1&amp;amp;hl=en&amp;amp;tab=ws � Scholar&lt;br /&gt;
  /intl/en/options/ � more��&lt;br /&gt;
  /advanced_search?hl=en � Advanced Search&lt;br /&gt;
  /preferences?hl=en � Preferences&lt;br /&gt;
  /language_tools?hl=en � Language Tools&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Finding out interested element ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.BufferedReader;&lt;br /&gt;
import java.io.InputStream;&lt;br /&gt;
import java.io.InputStreamReader;&lt;br /&gt;
import java.net.URL;&lt;br /&gt;
import java.net.URLConnection;&lt;br /&gt;
import javax.swing.text.AttributeSet;&lt;br /&gt;
import javax.swing.text.html.HTML;&lt;br /&gt;
import javax.swing.text.html.HTMLDocument;&lt;br /&gt;
import javax.swing.text.html.HTMLEditorKit;&lt;br /&gt;
import javax.swing.text.html.parser.ParserDelegator;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String args[]) throws Exception {&lt;br /&gt;
    URL url = new URL(&amp;quot;http://www.google.ru&amp;quot;);&lt;br /&gt;
    URLConnection connection = url.openConnection();&lt;br /&gt;
    InputStream is = connection.getInputStream();&lt;br /&gt;
    InputStreamReader isr = new InputStreamReader(is);&lt;br /&gt;
    BufferedReader br = new BufferedReader(isr);&lt;br /&gt;
    HTMLEditorKit htmlKit = new HTMLEditorKit();&lt;br /&gt;
    HTMLDocument htmlDoc = (HTMLDocument) htmlKit.createDefaultDocument();&lt;br /&gt;
    HTMLEditorKit.Parser parser = new ParserDelegator();&lt;br /&gt;
    HTMLEditorKit.ParserCallback callback = htmlDoc.getReader(0);&lt;br /&gt;
    parser.parse(br, callback, true);&lt;br /&gt;
    for (HTMLDocument.Iterator iterator = htmlDoc.getIterator(HTML.Tag.A); iterator.isValid(); iterator&lt;br /&gt;
        .next()) {&lt;br /&gt;
      AttributeSet attributes = iterator.getAttributes();&lt;br /&gt;
      String srcString = (String) attributes.getAttribute(HTML.Attribute.HREF);&lt;br /&gt;
      System.out.print(srcString);&lt;br /&gt;
      int startOffset = iterator.getStartOffset();&lt;br /&gt;
      int endOffset = iterator.getEndOffset();&lt;br /&gt;
      int length = endOffset - startOffset;&lt;br /&gt;
      String text = htmlDoc.getText(startOffset, length);&lt;br /&gt;
      System.out.println(&amp;quot; � &amp;quot; + text);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;url?sa=p&amp;amp;pref=ig&amp;amp;pval=3&amp;amp;q=http://www.google.ca/ig%3Fhl%3Den&amp;amp;usg=__o-KrRDBI3nbRElKzYEMqfOl3_t0= � Personalize this page&lt;br /&gt;
https://www.google.ru/accounts/Login?continue=http://www.google.ca/&amp;amp;hl=en � Sign in&lt;br /&gt;
  http://images.google.ca/imghp?ie=ISO-8859-1&amp;amp;oe=ISO-8859-1&amp;amp;hl=en&amp;amp;tab=wi � Images&lt;br /&gt;
  http://groups.google.ca/grphp?ie=ISO-8859-1&amp;amp;oe=ISO-8859-1&amp;amp;hl=en&amp;amp;tab=wg � Groups&lt;br /&gt;
  http://news.google.ca/nwshp?ie=ISO-8859-1&amp;amp;oe=ISO-8859-1&amp;amp;hl=en&amp;amp;tab=wn � News&lt;br /&gt;
  /maps?ie=ISO-8859-1&amp;amp;oe=ISO-8859-1&amp;amp;hl=en&amp;amp;tab=wl � Maps&lt;br /&gt;
  http://scholar.google.ru/schhp?ie=ISO-8859-1&amp;amp;oe=ISO-8859-1&amp;amp;hl=en&amp;amp;tab=ws � Scholar&lt;br /&gt;
  /intl/en/options/ � more��&lt;br /&gt;
  /advanced_search?hl=en � Advanced Search&lt;br /&gt;
  /preferences?hl=en � Preferences&lt;br /&gt;
  /language_tools?hl=en � Language Tools&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  HTML Tag Constants ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;OL&amp;gt;&amp;lt;LI&amp;gt;A&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;DIR&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;IMG&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;SCRIPT&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;ADDRESS&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;DIV&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;IMPLIED&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;SELECT&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;APPLET&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;DL&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;INPUT&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;SMALL&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;AREA&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;DT&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;ISINDEX&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;SPAN&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;B&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;EM&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;KBD&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;STRIKE&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;BASE&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;FONT&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;LI&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;STRONG&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;BASEFONT&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;FORM&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;LINK&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;STYLE&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;BIG&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;FRAME&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;MAP&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;SUB&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;BLOCKQUOTE&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;FRAMESET&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;MENU&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;SUP&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;BODY&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;H1&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;META&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;TABLE&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;BR&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;H2&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;NOFRAMES&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;TD&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;CAPTION&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;H3&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;OBJECT&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;TEXTAREA&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;CENTER&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;H4&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;OL&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;TH&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;CITE&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;H5&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;OPTION&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;TITLE&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;CODE&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;H6&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;P&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;TR&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;COMMENT&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;HEAD&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;PARAM&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;TT&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;CONTENT&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;HR&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;PRE&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;U&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;DD&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;HTML&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;S&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;UL&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;DFN&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;I&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;SAMP&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;VAR&amp;lt;/LI&amp;gt;&amp;lt;/OL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  HyperlinkListener Example ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import java.net.URL;&lt;br /&gt;
import javax.swing.JEditorPane;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JScrollPane;&lt;br /&gt;
import javax.swing.event.HyperlinkEvent;&lt;br /&gt;
import javax.swing.event.HyperlinkListener;&lt;br /&gt;
import javax.swing.text.Document;&lt;br /&gt;
class ActivatedHyperlinkListener implements HyperlinkListener {&lt;br /&gt;
  JEditorPane editorPane;&lt;br /&gt;
  public ActivatedHyperlinkListener(JEditorPane editorPane) {&lt;br /&gt;
    this.editorPane = editorPane;&lt;br /&gt;
  }&lt;br /&gt;
  public void hyperlinkUpdate(HyperlinkEvent hyperlinkEvent) {&lt;br /&gt;
    HyperlinkEvent.EventType type = hyperlinkEvent.getEventType();&lt;br /&gt;
    final URL url = hyperlinkEvent.getURL();&lt;br /&gt;
    if (type == HyperlinkEvent.EventType.ENTERED) {&lt;br /&gt;
      System.out.println(&amp;quot;URL: &amp;quot; + url);&lt;br /&gt;
    } else if (type == HyperlinkEvent.EventType.ACTIVATED) {&lt;br /&gt;
      System.out.println(&amp;quot;Activated&amp;quot;);&lt;br /&gt;
      Document doc = editorPane.getDocument();&lt;br /&gt;
      try {&lt;br /&gt;
        editorPane.setPage(url);&lt;br /&gt;
      } catch (IOException ioException) {&lt;br /&gt;
        System.out.println(&amp;quot;Error following link, Invalid link&amp;quot;);&lt;br /&gt;
        editorPane.setDocument(doc);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
public class EditorPaneSample {&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    JFrame frame = new JFrame(&amp;quot;EditorPane Example&amp;quot;);&lt;br /&gt;
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    try {&lt;br /&gt;
      JEditorPane editorPane = new JEditorPane(&amp;quot;http://www.google.ru&amp;quot;);&lt;br /&gt;
      editorPane.setEditable(false);&lt;br /&gt;
      HyperlinkListener hyperlinkListener = new ActivatedHyperlinkListener(editorPane);&lt;br /&gt;
      editorPane.addHyperlinkListener(hyperlinkListener);&lt;br /&gt;
      JScrollPane scrollPane = new JScrollPane(editorPane);&lt;br /&gt;
      frame.add(scrollPane);&lt;br /&gt;
    } catch (IOException e) {&lt;br /&gt;
      System.err.println(&amp;quot;Unable to load: &amp;quot; + e);&lt;br /&gt;
    }&lt;br /&gt;
    frame.setSize(640, 480);&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Iterating Across HTML Documents for Links ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.BufferedReader;&lt;br /&gt;
import java.io.InputStream;&lt;br /&gt;
import java.io.InputStreamReader;&lt;br /&gt;
import java.net.URL;&lt;br /&gt;
import java.net.URLConnection;&lt;br /&gt;
import javax.swing.text.AttributeSet;&lt;br /&gt;
import javax.swing.text.html.HTML;&lt;br /&gt;
import javax.swing.text.html.HTMLDocument;&lt;br /&gt;
import javax.swing.text.html.HTMLEditorKit;&lt;br /&gt;
import javax.swing.text.html.parser.ParserDelegator;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String args[]) throws Exception {&lt;br /&gt;
    URL url = new URL(&amp;quot;http://www.google.ru&amp;quot;);&lt;br /&gt;
    URLConnection connection = url.openConnection();&lt;br /&gt;
    InputStream is = connection.getInputStream();&lt;br /&gt;
    InputStreamReader isr = new InputStreamReader(is);&lt;br /&gt;
    BufferedReader br = new BufferedReader(isr);&lt;br /&gt;
    HTMLEditorKit htmlKit = new HTMLEditorKit();&lt;br /&gt;
    HTMLDocument htmlDoc = (HTMLDocument) htmlKit.createDefaultDocument();&lt;br /&gt;
    HTMLEditorKit.Parser parser = new ParserDelegator();&lt;br /&gt;
    HTMLEditorKit.ParserCallback callback = htmlDoc.getReader(0);&lt;br /&gt;
    parser.parse(br, callback, true);&lt;br /&gt;
    for (HTMLDocument.Iterator iterator = htmlDoc.getIterator(HTML.Tag.A); iterator.isValid(); iterator&lt;br /&gt;
        .next()) {&lt;br /&gt;
      AttributeSet attributes = iterator.getAttributes();&lt;br /&gt;
      String srcString = (String) attributes.getAttribute(HTML.Attribute.HREF);&lt;br /&gt;
      System.out.print(srcString);&lt;br /&gt;
      int startOffset = iterator.getStartOffset();&lt;br /&gt;
      int endOffset = iterator.getEndOffset();&lt;br /&gt;
      int length = endOffset - startOffset;&lt;br /&gt;
      String text = htmlDoc.getText(startOffset, length);&lt;br /&gt;
      System.out.println(&amp;quot; - &amp;quot; + text);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;url?sa=p&amp;amp;pref=ig&amp;amp;pval=3&amp;amp;q=http://www.google.ca/ig%3Fhl%3Den&amp;amp;usg=__o-KrRDBI3nbRElKzYEMqfOl3_t0= � Personalize this page&lt;br /&gt;
https://www.google.ru/accounts/Login?continue=http://www.google.ca/&amp;amp;hl=en � Sign in&lt;br /&gt;
  http://images.google.ca/imghp?ie=ISO-8859-1&amp;amp;oe=ISO-8859-1&amp;amp;hl=en&amp;amp;tab=wi � Images&lt;br /&gt;
  http://groups.google.ca/grphp?ie=ISO-8859-1&amp;amp;oe=ISO-8859-1&amp;amp;hl=en&amp;amp;tab=wg � Groups&lt;br /&gt;
  http://news.google.ca/nwshp?ie=ISO-8859-1&amp;amp;oe=ISO-8859-1&amp;amp;hl=en&amp;amp;tab=wn � News&lt;br /&gt;
  /maps?ie=ISO-8859-1&amp;amp;oe=ISO-8859-1&amp;amp;hl=en&amp;amp;tab=wl � Maps&lt;br /&gt;
  http://scholar.google.ru/schhp?ie=ISO-8859-1&amp;amp;oe=ISO-8859-1&amp;amp;hl=en&amp;amp;tab=ws � Scholar&lt;br /&gt;
  /intl/en/options/ � more��&lt;br /&gt;
  /advanced_search?hl=en � Advanced Search&lt;br /&gt;
  /preferences?hl=en � Preferences&lt;br /&gt;
  /language_tools?hl=en � Language Tools&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Look for specific tag types, such as HTML.Tag.H1, HTML.Tag.H2 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.BufferedReader;&lt;br /&gt;
import java.io.InputStream;&lt;br /&gt;
import java.io.InputStreamReader;&lt;br /&gt;
import java.net.URL;&lt;br /&gt;
import java.net.URLConnection;&lt;br /&gt;
import javax.swing.text.AttributeSet;&lt;br /&gt;
import javax.swing.text.Element;&lt;br /&gt;
import javax.swing.text.ElementIterator;&lt;br /&gt;
import javax.swing.text.StyleConstants;&lt;br /&gt;
import javax.swing.text.html.HTML;&lt;br /&gt;
import javax.swing.text.html.HTMLDocument;&lt;br /&gt;
import javax.swing.text.html.HTMLEditorKit;&lt;br /&gt;
import javax.swing.text.html.parser.ParserDelegator;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String args[]) throws Exception {&lt;br /&gt;
    URL url = new URL(&amp;quot;http://www.google.ru&amp;quot;);&lt;br /&gt;
    URLConnection connection = url.openConnection();&lt;br /&gt;
    InputStream is = connection.getInputStream();&lt;br /&gt;
    InputStreamReader isr = new InputStreamReader(is);&lt;br /&gt;
    BufferedReader br = new BufferedReader(isr);&lt;br /&gt;
    HTMLEditorKit htmlKit = new HTMLEditorKit();&lt;br /&gt;
    HTMLDocument htmlDoc = (HTMLDocument) htmlKit.createDefaultDocument();&lt;br /&gt;
    HTMLEditorKit.Parser parser = new ParserDelegator();&lt;br /&gt;
    HTMLEditorKit.ParserCallback callback = htmlDoc.getReader(0);&lt;br /&gt;
    parser.parse(br, callback, true);&lt;br /&gt;
    Element element;&lt;br /&gt;
    ElementIterator iterator = new ElementIterator(htmlDoc);&lt;br /&gt;
    while ((element = iterator.next()) != null) {&lt;br /&gt;
      AttributeSet attributes = element.getAttributes();&lt;br /&gt;
      Object name = attributes.getAttribute(StyleConstants.NameAttribute);&lt;br /&gt;
    &lt;br /&gt;
      if ((name instanceof HTML.Tag)&lt;br /&gt;
          &amp;amp;&amp;amp; (name == HTML.Tag.H1 || name == HTML.Tag.H2 || name == HTML.Tag.P )) {&lt;br /&gt;
        // Build up content text as it may be within multiple elements&lt;br /&gt;
        int count = element.getElementCount();&lt;br /&gt;
        for (int i = 0; i &amp;lt; count; i++) {&lt;br /&gt;
          Element child = element.getElement(i);&lt;br /&gt;
          AttributeSet childAttributes = child.getAttributes();&lt;br /&gt;
          if (childAttributes.getAttribute(StyleConstants.NameAttribute) == HTML.Tag.CONTENT) {&lt;br /&gt;
            int startOffset = child.getStartOffset();&lt;br /&gt;
            int endOffset = child.getEndOffset();&lt;br /&gt;
            int length = endOffset - startOffset;&lt;br /&gt;
            System.out.println(htmlDoc.getText(startOffset, length));&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>