The nodes package has the concrete node implementations.

The classes in this package all implement the {@link org.htmlparser.Node Node} interface. They individually implement the more specific interfaces for text, remarks and tags. The three node types are mapped as follows:

Interface | Concrete Implementation
{@link org.htmlparser.Text Text} | {@link org.htmlparser.nodes.TextNode TextNode}
{@link org.htmlparser.Remark Remark} | {@link org.htmlparser.nodes.RemarkNode RemarkNode}
{@link org.htmlparser.Tag Tag} | {@link org.htmlparser.nodes.TagNode TagNode}

These classes are derived from the {@link org.htmlparser.nodes.AbstractNode AbstractNode} class, which provides basic functionality common to all nodes, such as maintaining start and end positions and child and parent references. Only the {@link org.htmlparser.nodes.TagNode TagNode} objects contain a list of {@link org.htmlparser.Attribute Attribute} objects.

The {@link org.htmlparser.lexer.Lexer Lexer} parses an HTML stream into a contiguous stream of these nodes.

The {@link org.htmlparser.Parser Parser} returns either these nodes or specific {@link org.htmlparser.tags Tag} objects (which are subclasses of TagNode) for tags with names that have been registered via {@link org.htmlparser.PrototypicalNodeFactory#registerTag registerTag()}.