## org.apache.html.dom
Class HTMLDocumentImpl

    java.lang.Object
      |
      +--org.apache.xerces.dom.NodeImpl
            |
            +--org.apache.xerces.dom.ChildNode
                  |
                  +--org.apache.xerces.dom.ParentNode
                        |
                        +--org.apache.xerces.dom.CoreDocumentImpl
                              |
                              +--org.apache.xerces.dom.DocumentImpl
                                    |
                                    +--org.apache.html.dom.HTMLDocumentImpl

public class HTMLDocumentImpl
extends DocumentImpl
implements HTMLDocument

Implements an HTML document. Provides access to the top level element in the document, its body and title.

Several methods create new nodes of all basic types (comment, text, element, etc.). These methods create new nodes but do not place them in the document tree. The nodes may be placed in the document tree using `Node.appendChild(org.w3c.dom.Node)` or `Node.insertBefore(org.w3c.dom.Node, org.w3c.dom.Node)`, or they may be placed in some other document tree.

Note: <FRAMESET> documents are not supported at the moment, neither are direct document writing (`open()`, `write(java.lang.String)`) and HTTP attribute methods (`getURL()`, `getCookie()`).

Version:
  $Revision: 1.8 $ $Date: 2000/10/04 08:53:21 $
Author:
  Assaf Arkin
See Also:
  `HTMLDocument`, Serialized Form

Fields inherited from class org.apache.xerces.dom.DocumentImpl
`eventListeners, iterators, mutationEvents, ranges, userData`

Fields inherited from class org.apache.xerces.dom.CoreDocumentImpl
`allowGrammarAccess, changes, docElement, docType, encoding, errorChecking, identifiers, kidOK, standalone, version`

Fields inherited from class org.apache.xerces.dom.ParentNode
`fCachedChild, fCachedChildIndex, fCachedLength, firstChild, ownerDocument`

Fields inherited from class org.apache.xerces.dom.ChildNode
`nextSibling, previousSibling`

Fields inherited from class org.apache.xerces.dom.NodeImpl
`ELEMENT_DEFINITION_NODE, FIRSTCHILD, flags, HASSTRING, IGNORABLEWS, OWNED, ownerNode, READONLY, SPECIFIED, SYNCCHILDREN, SYNCDATA, UNNORMALIZED`

Fields inherited from interface org.w3c.dom.Node
`ATTRIBUTE_NODE, CDATA_SECTION_NODE, COMMENT_NODE, DOCUMENT_FRAGMENT_NODE, DOCUMENT_NODE, DOCUMENT_TYPE_NODE, ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, NOTATION_NODE, PROCESSING_INSTRUCTION_NODE, TEXT_NODE`

Constructor Summary
`HTMLDocumentImpl()`

Method Summary
`Node` `cloneNode(boolean deep)` Returns a duplicate of this node, i.e., serves as a generic copy constructor for nodes.
`void` `close()` Closes a document stream opened by `open()` and forces rendering.
`Attr` `createAttribute(java.lang.String name)` Creates an Attribute having this Document as its OwnerDoc.
`Element` `createElement(java.lang.String tagName)` Creates an element of the type specified.
`Element` `createElementNS(java.lang.String namespaceURI, java.lang.String qualifiedName)` Creates an element of the given qualified name and namespace URI.
`HTMLCollection` `getAnchors()` A collection of all the anchor (`A` ) elements in a document with a value for the `name` attribute.
`HTMLCollection` `getApplets()` A collection of all the `OBJECT` elements that include applets and `APPLET` ( deprecated ) elements in a document.
`HTMLElement` `getBody()` The element that contains the content for the document.
`java.lang.String` `getCookie()` The cookies associated with this document.
`Element` `getDocumentElement()` This is a convenience attribute that allows direct access to the child node that is the root element of the document.
`java.lang.String` `getDomain()` The domain name of the server that served the document, or `null` if the server cannot be identified by a domain name.
`Element` `getElementById(java.lang.String elementId)` Returns the `Element` whose `ID` is given by `elementId`.
`NodeList` `getElementsByName(java.lang.String elementName)` Returns the (possibly empty) collection of elements whose `name` value is given by `elementName` .
`NodeList` `getElementsByTagName(java.lang.String tagName)` Returns a `NodeList` of all the `Elements` with a given tag name in the order in which they are encountered in a preorder traversal of the `Document` tree.
`NodeList` `getElementsByTagNameNS(java.lang.String namespaceURI, java.lang.String localName)` Returns a `NodeList` of all the `Elements` with a given local name and namespace URI in the order in which they are encountered in a preorder traversal of the `Document` tree.
`HTMLCollection` `getForms()` A collection of all the forms of a document.
`HTMLElement` `getHead()` Obtains the <HEAD> element in the document, creating one if does not exist before.
`HTMLCollection` `getImages()` A collection of all the `IMG` elements in a document.
`HTMLCollection` `getLinks()` A collection of all `AREA` elements and anchor ( `A` ) elements in a document with a value for the `href` attribute.
`java.lang.String` `getReferrer()` Returns the URI of the page that linked to this page.
`java.lang.String` `getTitle()` The title of a document as specified by the `TITLE` element in the head of the document.
`java.lang.String` `getURL()` The complete URI of the document.
`void` `open()` Note.
`void` `setBody(HTMLElement newBody)`
`void` `setCookie(java.lang.String cookie)`
`void` `setTitle(java.lang.String newTitle)`
`void` `write(java.lang.String text)` Write a string of text to a document stream opened by `open()` .
`void` `writeln(java.lang.String text)` Write a string of text followed by a newline character to a document stream opened by `open()` .

Methods inherited from class org.apache.xerces.dom.DocumentImpl
`addEventListener, createEvent, createNodeIterator, createNodeIterator, createRange, createTreeWalker, createTreeWalker, dispatchAggregateEvents, dispatchAggregateEvents, dispatchEvent, dispatchEventToSubtree, getEventListeners, getImplementation, getUserData, removeEventListener, saveEnclosingAttr, setEventListeners, setUserData`

Methods inherited from class org.apache.xerces.dom.CoreDocumentImpl

`adoptNode, changed, changes, clone, cloneNode, createAttributeNS, createCDATASection, createComment, createDocumentFragment, createDocumentType, createElementDefinition, createEntity, createEntityReference, createNotation, createProcessingInstruction, createTextNode, getDoctype, getEncoding, getErrorChecking, getIdentifier, getIdentifiers, getNodeName, getNodeType, getOwnerDocument, getStandalone, getStrictErrorChecking, getVersion, importNode, insertBefore, isKidOK, isXMLName, putIdentifier, removeChild, removeIdentifier, replaceChild, setEncoding, setErrorChecking, setStandalone, setStrictErrorChecking, setVersion`

Methods inherited from class org.apache.xerces.dom.ParentNode
`getChildNodes, getChildNodesUnoptimized, getFirstChild, getLastChild, getLength, hasChildNodes, item, normalize, setReadOnly, synchronizeChildren`

Methods inherited from class org.apache.xerces.dom.ChildNode
`getNextSibling, getParentNode, getPreviousSibling`

Methods inherited from class org.apache.xerces.dom.NodeImpl
`addEventListener, appendChild, dispatchEvent, getAttributes, getLocalName, getNamespaceURI, getNodeValue, getPrefix, getReadOnly, getUserData, hasAttributes, isSupported, removeEventListener, setNodeValue, setPrefix, setUserData, synchronizeData, toString`

Methods inherited from class java.lang.Object
`equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Constructor Detail

### HTMLDocumentImpl

    public HTMLDocumentImpl()

Method Detail

### getDocumentElement

    public Element getDocumentElement()

  Description copied from interface: Document
  This is a convenience attribute that allows direct access to the child node that is the root element of the document. For HTML documents, this is the element with the tagName "HTML".
  Overrides:
    getDocumentElement in class CoreDocumentImpl

### getHead

    public HTMLElement getHead()

  Obtains the <HEAD> element in the document, creating one if does not exist before. The <HEAD> element is the first element in the <HTML> in the document. The <HTML> element is obtained by calling `getDocumentElement()`. If the element does not exist, one is created.

  Called by `getTitle()`, `setTitle(java.lang.String)`, `getBody()` and `setBody(org.w3c.dom.html.HTMLElement)` to assure the document has the <HEAD> element correctly placed.

  Returns:
    The <HEAD> element

### getTitle

    public java.lang.String getTitle()

  Description copied from interface: HTMLDocument
  The title of a document as specified by the `TITLE` element in the head of the document.
  Specified by:
    getTitle in interface HTMLDocument

### setTitle

    public void setTitle(java.lang.String newTitle)

  Specified by:
    setTitle in interface HTMLDocument

### getBody

    public HTMLElement getBody()

  Description copied from interface: HTMLDocument
  The element that contains the content for the document. In documents with `BODY` contents, returns the `BODY` element. In frameset documents, this returns the outermost `FRAMESET` element.
  Specified by:
    getBody in interface HTMLDocument

### setBody

    public void setBody(HTMLElement newBody)

  Specified by:
    setBody in interface HTMLDocument

### getElementById

    public Element getElementById(java.lang.String elementId)

  Description copied from interface: Document
  Returns the `Element` whose `ID` is given by `elementId`. If no such element exists, returns `null`. Behavior is not defined if more than one element has this `ID`. The DOM implementation must have information that says which attributes are of type ID. Attributes with the name "ID" are not of type ID unless so defined. Implementations that do not know whether attributes are of type ID or not are expected to return `null`.
  Overrides:
    getElementById in class CoreDocumentImpl
  Tags copied from interface: Document
  Parameters:
    `elementIdThe` - unique `id` value for an element.
  Returns:
    The matching element.

### getElementsByName

    public NodeList getElementsByName(java.lang.String elementName)

  Description copied from interface: HTMLDocument
  Returns the (possibly empty) collection of elements whose `name` value is given by `elementName` .
  Specified by:
    getElementsByName in interface HTMLDocument
  Tags copied from interface: HTMLDocument
  Parameters:
    `elementName` - The `name` attribute value for an element.
  Returns:
    The matching elements.

### getElementsByTagName

    public final NodeList getElementsByTagName(java.lang.String tagName)

  Description copied from interface: Document
  Returns a `NodeList` of all the `Elements` with a given tag name in the order in which they are encountered in a preorder traversal of the `Document` tree.
  Overrides:
    getElementsByTagName in class CoreDocumentImpl
  Tags copied from interface: Document
  Parameters:
    `tagnameThe` - name of the tag to match on. The special value "*" matches all tags.
  Returns:
    A new `NodeList` object containing all the matched `Elements`.

### getElementsByTagNameNS

    public final NodeList getElementsByTagNameNS(java.lang.String namespaceURI,
                                                 java.lang.String localName)

  Description copied from interface: Document
  Returns a `NodeList` of all the `Elements` with a given local name and namespace URI in the order in which they are encountered in a preorder traversal of the `Document` tree.
  Overrides:
    getElementsByTagNameNS in class CoreDocumentImpl
  Tags copied from interface: Document
  Parameters:
    `namespaceURIThe` - namespace URI of the elements to match on. The special value "*" matches all namespaces.
    `localNameThe` - local name of the elements to match on. The special value "*" matches all local names.
  Returns:
    A new `NodeList` object containing all the matched `Elements`.

### createElementNS

    public Element createElementNS(java.lang.String namespaceURI,
                                   java.lang.String qualifiedName)

  Description copied from interface: Document
  Creates an element of the given qualified name and namespace URI. HTML-only DOM implementations do not need to implement this method.
  Overrides:
    createElementNS in class CoreDocumentImpl
  Tags copied from interface: Document
  Parameters:
    `namespaceURIThe` - namespace URI of the element to create.
    `qualifiedNameThe` - qualified name of the element type to instantiate.
  Returns:
    A new `Element` object with the following attributes:AttributeValue`Node.nodeName` `qualifiedName` `Node.namespaceURI` `namespaceURI` `Node.prefix`prefix, extracted from `qualifiedName`, or `null` if there is no prefix`Node.localName`local name, extracted from `qualifiedName` `Element.tagName` `qualifiedName`
  Throws:
    DOMException - INVALID_CHARACTER_ERR: Raised if the specified qualified name contains an illegal character.
    NAMESPACE_ERR: Raised if the `qualifiedName` is malformed, if the `qualifiedName` has a prefix and the `namespaceURI` is `null`, or if the `qualifiedName` has a prefix that is "xml" and the `namespaceURI` is different from " http://www.w3.org/XML/1998/namespace" .

### createElement

    public Element createElement(java.lang.String tagName)
                          throws DOMException

  Description copied from interface: Document
  Creates an element of the type specified. Note that the instance returned implements the `Element` interface, so attributes can be specified directly on the returned object.
  In addition, if there are known attributes with default values, `Attr` nodes representing them are automatically created and attached to the element.
  To create an element with a qualified name and namespace URI, use the `createElementNS` method.
  Overrides:
    createElement in class CoreDocumentImpl
  Tags copied from interface: Document
  Parameters:
    `tagNameThe` - name of the element type to instantiate. For XML, this is case-sensitive. For HTML, the `tagName` parameter may be provided in any case, but it must be mapped to the canonical uppercase form by the DOM implementation.
  Returns:
    A new `Element` object with the `nodeName` attribute set to `tagName`, and `localName`, `prefix`, and `namespaceURI` set to `null`.
  Throws:
    DOMException - INVALID_CHARACTER_ERR: Raised if the specified name contains an illegal character.

### createAttribute

    public Attr createAttribute(java.lang.String name)
                         throws DOMException

  Creates an Attribute having this Document as its OwnerDoc. Overrides `CoreDocumentImpl.createAttribute(java.lang.String)` and returns and attribute whose name is lower case.
  Overrides:
    createAttribute in class CoreDocumentImpl
  Parameters:
    `name` - The name of the attribute
  Returns:
    An attribute whose name is all lower case
  Throws:
    DOMException(INVALID_NAME_ERR) - if the attribute name is not acceptable

### getReferrer

    public java.lang.String getReferrer()

  Description copied from interface: HTMLDocument
  Returns the URI of the page that linked to this page. The value is an empty string if the user navigated to the page directly (not through a link, but, for example, via a bookmark).
  Specified by:
    getReferrer in interface HTMLDocument

### getDomain

    public java.lang.String getDomain()

  Description copied from interface: HTMLDocument
  The domain name of the server that served the document, or `null` if the server cannot be identified by a domain name.
  Specified by:
    getDomain in interface HTMLDocument

### getURL

    public java.lang.String getURL()

  Description copied from interface: HTMLDocument
  The complete URI of the document.
  Specified by:
    getURL in interface HTMLDocument

### getCookie

    public java.lang.String getCookie()

  Description copied from interface: HTMLDocument
  The cookies associated with this document. If there are none, the value is an empty string. Otherwise, the value is a string: a semicolon-delimited list of "name, value" pairs for all the cookies associated with the page. For example, `name=value;expires=date` .
  Specified by:
    getCookie in interface HTMLDocument

### setCookie

    public void setCookie(java.lang.String cookie)

  Specified by:
    setCookie in interface HTMLDocument

### getImages

    public HTMLCollection getImages()

  Description copied from interface: HTMLDocument
  A collection of all the `IMG` elements in a document. The behavior is limited to `IMG` elements for backwards compatibility.
  Specified by:
    getImages in interface HTMLDocument

### getApplets

    public HTMLCollection getApplets()

  Description copied from interface: HTMLDocument
  A collection of all the `OBJECT` elements that include applets and `APPLET` ( deprecated ) elements in a document.
  Specified by:
    getApplets in interface HTMLDocument

### getLinks

    public HTMLCollection getLinks()

  Description copied from interface: HTMLDocument
  A collection of all `AREA` elements and anchor ( `A` ) elements in a document with a value for the `href` attribute.
  Specified by:
    getLinks in interface HTMLDocument

### getForms

    public HTMLCollection getForms()

  Description copied from interface: HTMLDocument
  A collection of all the forms of a document.
  Specified by:
    getForms in interface HTMLDocument

### getAnchors

    public HTMLCollection getAnchors()

  Description copied from interface: HTMLDocument
  A collection of all the anchor (`A` ) elements in a document with a value for the `name` attribute. Note. For reasons of backwards compatibility, the returned set of anchors only contains those anchors created with the `name` attribute, not those created with the `id` attribute.
  Specified by:
    getAnchors in interface HTMLDocument

### open

    public void open()

  Description copied from interface: HTMLDocument
  Note. This method and the ones following allow a user to add to or replace the structure model of a document using strings of unparsed HTML. At the time of writing alternate methods for providing similar functionality for both HTML and XML documents were being considered. The following methods may be deprecated at some point in the future in favor of a more general-purpose mechanism.
  Open a document stream for writing. If a document exists in the target, this method clears it.
  Specified by:
    open in interface HTMLDocument

### close

    public void close()

  Description copied from interface: HTMLDocument
  Closes a document stream opened by `open()` and forces rendering.
  Specified by:
    close in interface HTMLDocument

### write

    public void write(java.lang.String text)

  Description copied from interface: HTMLDocument
  Write a string of text to a document stream opened by `open()` . The text is parsed into the document's structure model.
  Specified by:
    write in interface HTMLDocument
  Tags copied from interface: HTMLDocument
  Parameters:
    `text` - The string to be parsed into some structure in the document structure model.

### writeln

    public void writeln(java.lang.String text)

  Description copied from interface: HTMLDocument
  Write a string of text followed by a newline character to a document stream opened by `open()` . The text is parsed into the document's structure model.
  Specified by:
    writeln in interface HTMLDocument
  Tags copied from interface: HTMLDocument
  Parameters:
    `text` - The string to be parsed into some structure in the document structure model.

### cloneNode

    public Node cloneNode(boolean deep)

  Description copied from interface: Node
  Returns a duplicate of this node, i.e., serves as a generic copy constructor for nodes. The duplicate node has no parent; ( `parentNode` is `null`.).
  Cloning an `Element` copies all attributes and their values, including those generated by the XML processor to represent defaulted attributes, but this method does not copy any text it contains unless it is a deep clone, since the text is contained in a child `Text` node. Cloning an `Attribute` directly, as opposed to be cloned as part of an `Element` cloning operation, returns a specified attribute ( `specified` is `true`). Cloning any other type of node simply returns a copy of this node.
  Note that cloning an immutable subtree results in a mutable copy, but the children of an `EntityReference` clone are readonly . In addition, clones of unspecified `Attr` nodes are specified. And, cloning `Document`, `DocumentType`, `Entity`, and `Notation` nodes is implementation dependent.
  Overrides:
    cloneNode in class DocumentImpl
  Tags copied from interface: Node
  Parameters:
    `deepIf` - `true`, recursively clone the subtree under the specified node; if `false`, clone only the node itself (and its attributes, if it is an `Element`).
  Returns:
    The duplicate node.

Copyright © 1999-2001 Apache XML Project. All Rights Reserved.