javax.swing.text.html.parser

Class DocumentParser

public class DocumentParser extends Parser implements DTDConstants

A simple error-tolerant HTML parser that uses a DTD document to access data on the possible tokens, arguments and syntax.

The parser reads an HTML content from a Reader and calls various notifying methods (which should be overridden in a subclass) when tags or data are encountered.

Some HTML elements need no opening or closing tags. The task of this parser is to invoke the tag handling methods also when the tags are not explicitly specified and must be supposed using information, stored in the DTD. For example, parsing the document

<table><tr><td>a<td>b<td>c</tr>
will invoke exactly the handling methods exactly in the same order (and with the same parameters) as if parsing the document:
<html><head></head><body><table>< tbody><tr><td>a</td><td>b </td><td>c</td></tr>< /tbody></table></body></html>

(supposed tags are given in italics). The parser also supports obsolete elements of HTML syntax.

In this implementation, DocumentParser is directly derived from its ancestor without changes of functionality.
Constructor Summary
DocumentParser(DTD a_dtd)
Creates a new parser that uses the given DTD to access data on the possible tokens, arguments and syntax.
Method Summary
protected voidhandleComment(char[] comment)
Handle HTML comment.
protected voidhandleEmptyTag(TagElement tag)
Handle the tag with no content, like <br>.
protected voidhandleEndTag(TagElement tag)
The method is called when the HTML closing tag ((like </table>) is found or if the parser concludes that the one should be present in the current position.
protected voidhandleError(int line, String message)
protected voidhandleStartTag(TagElement tag)
The method is called when the HTML opening tag ((like <table>) is found or if the parser concludes that the one should be present in the current position.
protected voidhandleText(char[] text)
Handle the text section.
voidparse(Reader reader, HTMLEditorKit.ParserCallback aCallback, boolean ignoreCharSet)
Parses the HTML document, calling methods of the provided callback.

Constructor Detail

DocumentParser

public DocumentParser(DTD a_dtd)
Creates a new parser that uses the given DTD to access data on the possible tokens, arguments and syntax. There is no single - step way to get a default DTD; you must either refer to the implementation - specific packages, write your own DTD or obtain the working instance of parser in other way, for example, by calling {@link javax.swing.text.html.HTMLEditorKit#getParser()}.

Parameters: a_dtd a DTD to use.

Method Detail

handleComment

protected void handleComment(char[] comment)
Handle HTML comment. The default method returns without action.

Parameters: comment the comment being handled

handleEmptyTag

protected void handleEmptyTag(TagElement tag)
Handle the tag with no content, like <br>. The method is called for the elements that, in accordance with the current DTD, has an empty content.

Parameters: tag the tag being handled.

Throws: javax.swing.text.ChangedCharSetException

handleEndTag

protected void handleEndTag(TagElement tag)
The method is called when the HTML closing tag ((like </table>) is found or if the parser concludes that the one should be present in the current position.

Parameters: tag The tag being handled

handleError

protected void handleError(int line, String message)

handleStartTag

protected void handleStartTag(TagElement tag)
The method is called when the HTML opening tag ((like <table>) is found or if the parser concludes that the one should be present in the current position.

Parameters: tag The tag being handled

handleText

protected void handleText(char[] text)
Handle the text section.

Parameters: text a section text.

parse

public void parse(Reader reader, HTMLEditorKit.ParserCallback aCallback, boolean ignoreCharSet)
Parses the HTML document, calling methods of the provided callback. This method must be multithread - safe.

Parameters: reader The reader to read the HTML document from aCallback The callback that is notifyed about the presence of HTML elements in the document. ignoreCharSet If thrue, any charset changes during parsing are ignored.

Throws: java.io.IOException