com.gargoylesoftware.htmlunit.html
Class DomNode

java.lang.Object
  extended by com.gargoylesoftware.htmlunit.html.DomNode
All Implemented Interfaces:
Serializable, Cloneable, Node
Direct Known Subclasses:
DomCharacterData, DomDocumentFragment, DomDocumentType, DomNamespaceNode, DomProcessingInstruction, SgmlPage

public abstract class DomNode
extends Object
implements Cloneable, Serializable, Node

Base class for nodes in the HTML DOM tree. This class is modeled after the W3C DOM specification, but does not implement it.

Version:
$Revision: 9098 $
Author:
Mike Bowler, Mike J. Bresnahan, David K. Taylor, Christian Sell, Chris Erskine, Mike Williams, Marc Guillemot, Denis N. Antonioli, Daniel Gredler, Ahmed Ashour, Rodney Gitzel, Sudhan Moghe, Tom Anderson, Ronald Brill, Chuck Dumont, Frank Danek
See Also:
Serialized Form

Nested Class Summary
protected  class DomNode.ChildIterator
          An iterator over all children of this node.
protected  class DomNode.DescendantElementsIterator<T extends DomNode>
          Iterates over all descendants of a specific type, in document order.
 
Field Summary
protected static String AS_TEXT_BLANK
          Indicates a non blank that can't be trimmed or reduced.
protected static String AS_TEXT_BLOCK_SEPARATOR
          Indicates a block.
protected static String AS_TEXT_NEW_LINE
          Indicates a new line.
protected static String AS_TEXT_TAB
          Indicates a tab.
static String PROPERTY_ELEMENT
          The name of the "element" property.
static String READY_STATE_COMPLETE
          A ready state constant for IE (state 5).
static String READY_STATE_INTERACTIVE
          A ready state constant for IE (state 4).
static String READY_STATE_LOADED
          A ready state constant for IE (state 3).
static String READY_STATE_LOADING
          A ready state constant for IE (state 2).
static String READY_STATE_UNINITIALIZED
          A ready state constant for IE (state 1).
 
Fields inherited from interface org.w3c.dom.Node
ATTRIBUTE_NODE, CDATA_SECTION_NODE, COMMENT_NODE, DOCUMENT_FRAGMENT_NODE, DOCUMENT_NODE, DOCUMENT_POSITION_CONTAINED_BY, DOCUMENT_POSITION_CONTAINS, DOCUMENT_POSITION_DISCONNECTED, DOCUMENT_POSITION_FOLLOWING, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC, DOCUMENT_POSITION_PRECEDING, DOCUMENT_TYPE_NODE, ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, NOTATION_NODE, PROCESSING_INSTRUCTION_NODE, TEXT_NODE
 
Constructor Summary
protected DomNode()
          Deprecated. 
protected DomNode(SgmlPage page)
          Creates a new instance.
 
Method Summary
 void addDomChangeListener(DomChangeListener listener)
          Adds a DomChangeListener to the listener list.
 DomNode appendChild(Node node)
          
 String asText()
          Returns a textual representation of this element that represents what would be visible to the user if this page was shown in a web browser.
 String asXml()
          Returns a string representation of the XML document from this element and all it's children (recursively).
protected  void checkChildHierarchy(Node newChild)
          Check for insertion errors for a new child node.
 DomNode cloneNode(boolean deep)
          
 short compareDocumentPosition(Node other)
          
protected  void detach()
          INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Detach this node from all relationships with other nodes.
protected  void fireNodeAdded(DomNode parentNode, DomNode addedNode)
          Support for reporting DOM changes.
protected  void fireNodeDeleted(DomNode parentNode, DomNode deletedNode)
          Support for reporting DOM changes.
protected  List<Node> getAncestors(boolean includeSelf)
          Gets the ancestors of the node.
 NamedNodeMap getAttributes()
          
 String getBaseURI()
           Not yet implemented.
 List<?> getByXPath(String xpathExpr)
          Evaluates the specified XPath expression from this node, returning the matching elements.
 List<?> getByXPath(String xpathExpr, org.apache.xml.utils.PrefixResolver resolver)
          Evaluates the specified XPath expression from this node, returning the matching elements.
 String getCanonicalXPath()
          Returns the canonical XPath expression which identifies this node, for instance "/html/body/table[3]/tbody/tr[5]/td[2]/span/a[3]".
 DomNodeList<DomNode> getChildNodes()
          
 Iterable<DomNode> getChildren()
           
 Iterable<DomNode> getDescendants()
          Returns an Iterable that will recursively iterate over all of this node's descendants, including DomText elements, DomComment elements, etc.
 int getEndColumnNumber()
          Returns the column number in the source page where the DOM node ends.
 int getEndLineNumber()
          Returns the line number in the source page where the DOM node ends.
 Object getFeature(String feature, String version)
           Not yet implemented.
<X> X
getFirstByXPath(String xpathExpr)
          Evaluates the specified XPath expression from this node, returning the first matching element, or null if no node matches the specified XPath expression.
<X> X
getFirstByXPath(String xpathExpr, org.apache.xml.utils.PrefixResolver resolver)
          Evaluates the specified XPath expression from this node, returning the first matching element, or null if no node matches the specified XPath expression.
 DomNode getFirstChild()
          
 Iterable<HtmlElement> getHtmlElementDescendants()
          Returns an Iterable that will recursively iterate over all of this node's HtmlElement descendants.
 HtmlPage getHtmlPageOrNull()
          Returns the page that contains this node.
 int getIndex()
          Returns this node's index within its parent's child nodes (zero-based).
 DomNode getLastChild()
          
 String getLocalName()
          
 String getNamespaceURI()
          
 DomNode getNextSibling()
          
abstract  String getNodeName()
          Returns this node's node name.
abstract  short getNodeType()
          Returns this node's node type.
 String getNodeValue()
          
 Document getOwnerDocument()
          
 SgmlPage getPage()
          Returns the page that contains this node.
 DomNode getParentNode()
          
 String getPrefix()
          
 DomNode getPreviousSibling()
          
 String getReadyState()
          Returns this node's ready state (IE only).
 net.sourceforge.htmlunit.corejs.javascript.ScriptableObject getScriptObject()
          INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Returns the JavaScript object that corresponds to this node, lazily initializing a new one if necessary.
 int getStartColumnNumber()
          Returns the column number in the source page where the DOM node starts.
 int getStartLineNumber()
          Returns the line number in the source page where the DOM node starts.
 String getTextContent()
          
 Object getUserData(String key)
           Not yet implemented.
 boolean hasAttributes()
          
 boolean hasChildNodes()
          
protected  boolean hasFeature(BrowserVersionFeatures feature)
          Helper for a common call sequence.
 void insertBefore(DomNode newNode)
          Inserts the specified node as a new child node before this node into the child relationship this node is a part of.
 Node insertBefore(Node newChild, Node refChild)
          
 boolean isAncestorOf(DomNode node)
          Returns true if this node is an ancestor of the specified node.
 boolean isAncestorOfAny(DomNode... nodes)
          Returns true if this node is an ancestor of any of the specified nodes.
protected  boolean isBlock()
          Indicates if the text representation of this element is made as a block, ie if new lines need to be inserted before and after it.
 boolean isDefaultNamespace(String namespaceURI)
           Not yet implemented.
protected  boolean isDescendant(DomNode node)
          Checks whether the specified node is descendant of this node or not.
 boolean isDirectlyAttachedToPage()
          INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Indicates if this node is currently directly attached to the page.
 boolean isDisplayed()
          Returns true if this node is displayed and can be visible to the user (ignoring screen size, scrolling limitations, color, font-size, or overlapping nodes).
 boolean isEqualNode(Node arg)
           Not yet implemented.
 boolean isSameNode(Node other)
          
 boolean isSupported(String namespace, String featureName)
           Not yet implemented.
protected  boolean isTrimmedText()
          Returns a flag indicating whether or not this node should have any leading and trailing whitespace removed when asText() is called.
 String lookupNamespaceURI(String prefix)
           Not yet implemented.
 String lookupPrefix(String namespaceURI)
           Not yet implemented.
 boolean mayBeDisplayed()
          Returns true if nodes of this type can ever be displayed, false otherwise.
 void normalize()
          
protected  void notifyIncorrectness(String message)
          Notifies the registered IncorrectnessListener of something that is not fully correct.
protected  void onAddedToDocumentFragment()
          Lifecycle method invoked whenever a node is added to a document fragment.
protected  void onAddedToPage()
          Lifecycle method invoked whenever a node is added to a page.
protected  void onAllChildrenAddedToPage(boolean postponed)
          Lifecycle method invoked after a node and all its children have been added to a page, during parsing of the HTML.
protected  void printChildrenAsXml(String indent, PrintWriter printWriter)
          Recursively writes the XML data for the node tree starting at node.
protected  void printXml(String indent, PrintWriter printWriter)
          Recursively writes the XML data for the node tree starting at node.
 void processImportNode(com.gargoylesoftware.htmlunit.javascript.host.Document doc)
          INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Lifecycle method to support special processing for js method importNode.
 DomNode querySelector(String selectors)
          Returns the first element within the document that matches the specified group of selectors.
 DomNodeList<DomNode> querySelectorAll(String selectors)
          Retrieves all element nodes from descendants of the starting element node that match any selector within the supplied selector strings.
 void remove()
          Removes this node from all relationships with other nodes.
 void removeAllChildren()
          Removes all of this node's children.
 Node removeChild(Node child)
          
 void removeDomChangeListener(DomChangeListener listener)
          Removes a DomChangeListener from the listener list.
 void replace(DomNode newNode)
          Replaces this node with another node.
 Node replaceChild(Node newChild, Node oldChild)
          
protected  void setNextSibling(DomNode next)
           
 void setNodeValue(String value)
          
protected  void setParentNode(DomNode parent)
          Sets the parent node.
 void setPrefix(String prefix)
          
protected  void setPreviousSibling(DomNode previous)
           
 void setReadyState(String state)
          Sets this node's ready state (IE only).
 void setScriptObject(net.sourceforge.htmlunit.corejs.javascript.ScriptableObject scriptObject)
          INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Sets the JavaScript object that corresponds to this node.
 void setTextContent(String textContent)
          
 Object setUserData(String key, Object data, UserDataHandler handler)
           Not yet implemented.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

AS_TEXT_BLOCK_SEPARATOR

protected static final String AS_TEXT_BLOCK_SEPARATOR
Indicates a block. Will be rendered as line separator (multiple block marks are ignored)

See Also:
Constant Field Values

AS_TEXT_NEW_LINE

protected static final String AS_TEXT_NEW_LINE
Indicates a new line. Will be rendered as line separator.

See Also:
Constant Field Values

AS_TEXT_BLANK

protected static final String AS_TEXT_BLANK
Indicates a non blank that can't be trimmed or reduced.

See Also:
Constant Field Values

AS_TEXT_TAB

protected static final String AS_TEXT_TAB
Indicates a tab.

See Also:
Constant Field Values

READY_STATE_UNINITIALIZED

public static final String READY_STATE_UNINITIALIZED
A ready state constant for IE (state 1).

See Also:
Constant Field Values

READY_STATE_LOADING

public static final String READY_STATE_LOADING
A ready state constant for IE (state 2).

See Also:
Constant Field Values

READY_STATE_LOADED

public static final String READY_STATE_LOADED
A ready state constant for IE (state 3).

See Also:
Constant Field Values

READY_STATE_INTERACTIVE

public static final String READY_STATE_INTERACTIVE
A ready state constant for IE (state 4).

See Also:
Constant Field Values

READY_STATE_COMPLETE

public static final String READY_STATE_COMPLETE
A ready state constant for IE (state 5).

See Also:
Constant Field Values

PROPERTY_ELEMENT

public static final String PROPERTY_ELEMENT
The name of the "element" property. Used when watching property change events.

See Also:
Constant Field Values
Constructor Detail

DomNode

@Deprecated
protected DomNode()
Deprecated. 

Never call this, used for Serialization.


DomNode

protected DomNode(SgmlPage page)
Creates a new instance.

Parameters:
page - the page which contains this node
Method Detail

getStartLineNumber

public int getStartLineNumber()
Returns the line number in the source page where the DOM node starts.

Returns:
the line number in the source page where the DOM node starts

getStartColumnNumber

public int getStartColumnNumber()
Returns the column number in the source page where the DOM node starts.

Returns:
the column number in the source page where the DOM node starts

getEndLineNumber

public int getEndLineNumber()
Returns the line number in the source page where the DOM node ends.

Returns:
0 if no information on the line number is available (for instance for nodes dynamically added), -1 if the end tag has not yet been parsed (during page loading)

getEndColumnNumber

public int getEndColumnNumber()
Returns the column number in the source page where the DOM node ends.

Returns:
0 if no information on the line number is available (for instance for nodes dynamically added), -1 if the end tag has not yet been parsed (during page loading)

getPage

public SgmlPage getPage()
Returns the page that contains this node.

Returns:
the page that contains this node

getHtmlPageOrNull

public HtmlPage getHtmlPageOrNull()
Returns the page that contains this node.

Returns:
the page that contains this node

getOwnerDocument

public Document getOwnerDocument()

Specified by:
getOwnerDocument in interface Node

setScriptObject

public void setScriptObject(net.sourceforge.htmlunit.corejs.javascript.ScriptableObject scriptObject)
INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Sets the JavaScript object that corresponds to this node. This is not guaranteed to be set even if there is a JavaScript object for this DOM node.

Parameters:
scriptObject - the JavaScript object

getLastChild

public DomNode getLastChild()

Specified by:
getLastChild in interface Node

getParentNode

public DomNode getParentNode()

Specified by:
getParentNode in interface Node

setParentNode

protected void setParentNode(DomNode parent)
Sets the parent node.

Parameters:
parent - the parent node

getIndex

public int getIndex()
Returns this node's index within its parent's child nodes (zero-based).

Returns:
this node's index within its parent's child nodes (zero-based)

getPreviousSibling

public DomNode getPreviousSibling()

Specified by:
getPreviousSibling in interface Node

getNextSibling

public DomNode getNextSibling()

Specified by:
getNextSibling in interface Node

getFirstChild

public DomNode getFirstChild()

Specified by:
getFirstChild in interface Node

isAncestorOf

public boolean isAncestorOf(DomNode node)
Returns true if this node is an ancestor of the specified node.

Parameters:
node - the node to check
Returns:
true if this node is an ancestor of the specified node

isAncestorOfAny

public boolean isAncestorOfAny(DomNode... nodes)
Returns true if this node is an ancestor of any of the specified nodes.

Parameters:
nodes - the nodes to check
Returns:
true if this node is an ancestor of any of the specified nodes

setPreviousSibling

protected void setPreviousSibling(DomNode previous)
Parameters:
previous - set the previousSibling field value

setNextSibling

protected void setNextSibling(DomNode next)
Parameters:
next - set the nextSibling field value

getNodeType

public abstract short getNodeType()
Returns this node's node type.

Specified by:
getNodeType in interface Node
Returns:
this node's node type

getNodeName

public abstract String getNodeName()
Returns this node's node name.

Specified by:
getNodeName in interface Node
Returns:
this node's node name

getNamespaceURI

public String getNamespaceURI()

Specified by:
getNamespaceURI in interface Node

getLocalName

public String getLocalName()

Specified by:
getLocalName in interface Node

getPrefix

public String getPrefix()

Specified by:
getPrefix in interface Node

setPrefix

public void setPrefix(String prefix)

Specified by:
setPrefix in interface Node

hasChildNodes

public boolean hasChildNodes()

Specified by:
hasChildNodes in interface Node

getChildNodes

public DomNodeList<DomNode> getChildNodes()

Specified by:
getChildNodes in interface Node

isSupported

public boolean isSupported(String namespace,
                           String featureName)
Not yet implemented.

Specified by:
isSupported in interface Node

normalize

public void normalize()

Specified by:
normalize in interface Node

getBaseURI

public String getBaseURI()
Not yet implemented.

Specified by:
getBaseURI in interface Node

compareDocumentPosition

public short compareDocumentPosition(Node other)

Specified by:
compareDocumentPosition in interface Node

getAncestors

protected List<Node> getAncestors(boolean includeSelf)
Gets the ancestors of the node.

Parameters:
includeSelf - should this node be returned too
Returns:
a list of the ancestors with the root at the first position

getTextContent

public String getTextContent()

Specified by:
getTextContent in interface Node

setTextContent

public void setTextContent(String textContent)

Specified by:
setTextContent in interface Node

isSameNode

public boolean isSameNode(Node other)

Specified by:
isSameNode in interface Node

lookupPrefix

public String lookupPrefix(String namespaceURI)
Not yet implemented.

Specified by:
lookupPrefix in interface Node

isDefaultNamespace

public boolean isDefaultNamespace(String namespaceURI)
Not yet implemented.

Specified by:
isDefaultNamespace in interface Node

lookupNamespaceURI

public String lookupNamespaceURI(String prefix)
Not yet implemented.

Specified by:
lookupNamespaceURI in interface Node

isEqualNode

public boolean isEqualNode(Node arg)
Not yet implemented.

Specified by:
isEqualNode in interface Node

getFeature

public Object getFeature(String feature,
                         String version)
Not yet implemented.

Specified by:
getFeature in interface Node

getUserData

public Object getUserData(String key)
Not yet implemented.

Specified by:
getUserData in interface Node

setUserData

public Object setUserData(String key,
                          Object data,
                          UserDataHandler handler)
Not yet implemented.

Specified by:
setUserData in interface Node

hasAttributes

public boolean hasAttributes()

Specified by:
hasAttributes in interface Node

getAttributes

public NamedNodeMap getAttributes()

Specified by:
getAttributes in interface Node

isTrimmedText

protected boolean isTrimmedText()
Returns a flag indicating whether or not this node should have any leading and trailing whitespace removed when asText() is called. This method should usually return true, but must return false for such things as text formatting tags.

Returns:
a flag indicating whether or not this node should have any leading and trailing whitespace removed when asText() is called

isDisplayed

public boolean isDisplayed()

Returns true if this node is displayed and can be visible to the user (ignoring screen size, scrolling limitations, color, font-size, or overlapping nodes).

NOTE: If CSS is disabled, this method does not take this element's style into consideration!

Returns:
true if the node is visible to the user, false otherwise
See Also:
CSS2 Visibility, CSS2 Display, MSDN Documentation, mayBeDisplayed()

mayBeDisplayed

public boolean mayBeDisplayed()
Returns true if nodes of this type can ever be displayed, false otherwise. Examples of nodes that can never be displayed are <head>, <meta>, <script>, etc.

Returns:
true if nodes of this type can ever be displayed, false otherwise
See Also:
isDisplayed()

asText

public String asText()
Returns a textual representation of this element that represents what would be visible to the user if this page was shown in a web browser. For example, a single-selection select element would return the currently selected value as text.

Returns:
a textual representation of this element that represents what would be visible to the user if this page was shown in a web browser

isBlock

protected boolean isBlock()
Indicates if the text representation of this element is made as a block, ie if new lines need to be inserted before and after it.

Returns:
true if this element represents a block

asXml

public String asXml()
Returns a string representation of the XML document from this element and all it's children (recursively). The charset used is the current page encoding.

Returns:
the XML string

printXml

protected void printXml(String indent,
                        PrintWriter printWriter)
Recursively writes the XML data for the node tree starting at node.

Parameters:
indent - white space to indent child nodes
printWriter - writer where child nodes are written

printChildrenAsXml

protected void printChildrenAsXml(String indent,
                                  PrintWriter printWriter)
Recursively writes the XML data for the node tree starting at node.

Parameters:
indent - white space to indent child nodes
printWriter - writer where child nodes are written

getNodeValue

public String getNodeValue()

Specified by:
getNodeValue in interface Node

setNodeValue

public void setNodeValue(String value)

Specified by:
setNodeValue in interface Node

cloneNode

public DomNode cloneNode(boolean deep)

Specified by:
cloneNode in interface Node

getScriptObject

public net.sourceforge.htmlunit.corejs.javascript.ScriptableObject getScriptObject()
INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Returns the JavaScript object that corresponds to this node, lazily initializing a new one if necessary. The logic of when and where the JavaScript object is created needs a clean up: functions using a DOM node's JavaScript object should not have to check if they should create it first.

Returns:
the JavaScript object that corresponds to this node

appendChild

public DomNode appendChild(Node node)

Specified by:
appendChild in interface Node

insertBefore

public Node insertBefore(Node newChild,
                         Node refChild)

Specified by:
insertBefore in interface Node

insertBefore

public void insertBefore(DomNode newNode)
                  throws IllegalStateException
Inserts the specified node as a new child node before this node into the child relationship this node is a part of. If the specified node is this node, this method is a no-op.

Parameters:
newNode - the new node to insert
Throws:
IllegalStateException - if this node is not a child of any other node

removeChild

public Node removeChild(Node child)

Specified by:
removeChild in interface Node

removeAllChildren

public void removeAllChildren()
Removes all of this node's children.


remove

public void remove()
Removes this node from all relationships with other nodes.


detach

protected void detach()
INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Detach this node from all relationships with other nodes. This is the first step of an move.


replaceChild

public Node replaceChild(Node newChild,
                         Node oldChild)

Specified by:
replaceChild in interface Node

replace

public void replace(DomNode newNode)
             throws IllegalStateException
Replaces this node with another node. If the specified node is this node, this method is a no-op.

Parameters:
newNode - the node to replace this one
Throws:
IllegalStateException - if this node is not a child of any other node

checkChildHierarchy

protected void checkChildHierarchy(Node newChild)
                            throws DOMException
Check for insertion errors for a new child node. This is overridden by derived classes to enforce which types of children are allowed.

Parameters:
newChild - the new child node that is being inserted below this node
Throws:
DOMException - HIERARCHY_REQUEST_ERR: Raised if this node is of a type that does not allow children of the type of the newChild node, or if the node to insert is one of this node's ancestors or this node itself, or if this node is of type Document and the DOM application attempts to insert a second DocumentType or Element node. WRONG_DOCUMENT_ERR: Raised if newChild was created from a different document than the one that created this node.

onAddedToPage

protected void onAddedToPage()
Lifecycle method invoked whenever a node is added to a page. Intended to be overridden by nodes which need to perform custom logic when they are added to a page. This method is recursive, so if you override it, please be sure to call super.onAddedToPage().


onAllChildrenAddedToPage

protected void onAllChildrenAddedToPage(boolean postponed)
Lifecycle method invoked after a node and all its children have been added to a page, during parsing of the HTML. Intended to be overridden by nodes which need to perform custom logic after they and all their child nodes have been processed by the HTML parser. This method is not recursive, and the default implementation is empty, so there is no need to call super.onAllChildrenAddedToPage() if you implement this method.

Parameters:
postponed - whether to use PostponedAction or no

onAddedToDocumentFragment

protected void onAddedToDocumentFragment()
Lifecycle method invoked whenever a node is added to a document fragment. Intended to be overridden by nodes which need to perform custom logic when they are added to a fragment. This method is recursive, so if you override it, please be sure to call super.onAddedToDocumentFragment().


getChildren

public final Iterable<DomNode> getChildren()
Returns:
an Iterable over the children of this node

getDescendants

public final Iterable<DomNode> getDescendants()
Returns an Iterable that will recursively iterate over all of this node's descendants, including DomText elements, DomComment elements, etc. If you want to iterate only over HtmlElement descendants, please use getHtmlElementDescendants().

Returns:
an Iterable that will recursively iterate over all of this node's descendants

getHtmlElementDescendants

public final Iterable<HtmlElement> getHtmlElementDescendants()
Returns an Iterable that will recursively iterate over all of this node's HtmlElement descendants. If you want to iterate over all descendants (including DomText elements, DomComment elements, etc.), please use getDescendants().

Returns:
an Iterable that will recursively iterate over all of this node's HtmlElement descendants

getReadyState

public String getReadyState()
Returns this node's ready state (IE only).

Returns:
this node's ready state

setReadyState

public void setReadyState(String state)
Sets this node's ready state (IE only).

Parameters:
state - this node's ready state

getByXPath

public List<?> getByXPath(String xpathExpr)
Evaluates the specified XPath expression from this node, returning the matching elements.

Parameters:
xpathExpr - the XPath expression to evaluate
Returns:
the elements which match the specified XPath expression
See Also:
getFirstByXPath(String), getCanonicalXPath()

getByXPath

public List<?> getByXPath(String xpathExpr,
                          org.apache.xml.utils.PrefixResolver resolver)
Evaluates the specified XPath expression from this node, returning the matching elements.

Parameters:
xpathExpr - the XPath expression to evaluate
resolver - the prefix resolver to use for resolving namespace prefixes, or null
Returns:
the elements which match the specified XPath expression
See Also:
getFirstByXPath(String), getCanonicalXPath()

getFirstByXPath

public <X> X getFirstByXPath(String xpathExpr)
Evaluates the specified XPath expression from this node, returning the first matching element, or null if no node matches the specified XPath expression.

Type Parameters:
X - the expression type
Parameters:
xpathExpr - the XPath expression
Returns:
the first element matching the specified XPath expression
See Also:
getByXPath(String), getCanonicalXPath()

getFirstByXPath

public <X> X getFirstByXPath(String xpathExpr,
                             org.apache.xml.utils.PrefixResolver resolver)
Evaluates the specified XPath expression from this node, returning the first matching element, or null if no node matches the specified XPath expression.

Type Parameters:
X - the expression type
Parameters:
xpathExpr - the XPath expression
resolver - the prefix resolver to use for resolving namespace prefixes, or null
Returns:
the first element matching the specified XPath expression
See Also:
getByXPath(String), getCanonicalXPath()

getCanonicalXPath

public String getCanonicalXPath()

Returns the canonical XPath expression which identifies this node, for instance "/html/body/table[3]/tbody/tr[5]/td[2]/span/a[3]".

WARNING: This sort of automated XPath expression is often quite bad at identifying a node, as it is highly sensitive to changes in the DOM tree.

Returns:
the canonical XPath expression which identifies this node
See Also:
getByXPath(String)

notifyIncorrectness

protected void notifyIncorrectness(String message)
Notifies the registered IncorrectnessListener of something that is not fully correct.

Parameters:
message - the notification to send to the registered IncorrectnessListener

addDomChangeListener

public void addDomChangeListener(DomChangeListener listener)
Adds a DomChangeListener to the listener list. The listener is registered for all descendants of this node.

Parameters:
listener - the DOM structure change listener to be added
See Also:
removeDomChangeListener(DomChangeListener)

removeDomChangeListener

public void removeDomChangeListener(DomChangeListener listener)
Removes a DomChangeListener from the listener list. The listener is deregistered for all descendants of this node.

Parameters:
listener - the DOM structure change listener to be removed
See Also:
addDomChangeListener(DomChangeListener)

fireNodeAdded

protected void fireNodeAdded(DomNode parentNode,
                             DomNode addedNode)
Support for reporting DOM changes. This method can be called when a node has been added and it will send the appropriate DomChangeEvent to any registered DomChangeListeners. Note that this method recursively calls this node's parent's fireNodeAdded(DomNode, DomNode).

Parameters:
parentNode - the parent of the node that was added
addedNode - the node that was added

fireNodeDeleted

protected void fireNodeDeleted(DomNode parentNode,
                               DomNode deletedNode)
Support for reporting DOM changes. This method can be called when a node has been deleted and it will send the appropriate DomChangeEvent to any registered DomChangeListeners. Note that this method recursively calls this node's parent's fireNodeDeleted(DomNode, DomNode).

Parameters:
parentNode - the parent of the node that was deleted
deletedNode - the node that was deleted

querySelectorAll

public DomNodeList<DomNode> querySelectorAll(String selectors)
Retrieves all element nodes from descendants of the starting element node that match any selector within the supplied selector strings.

Parameters:
selectors - one or more CSS selectors separated by commas
Returns:
list of all found nodes

querySelector

public DomNode querySelector(String selectors)
Returns the first element within the document that matches the specified group of selectors.

Parameters:
selectors - one or more CSS selectors separated by commas
Returns:
null if no matches are found; otherwise, it returns the first matching element

isDirectlyAttachedToPage

public boolean isDirectlyAttachedToPage()
INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Indicates if this node is currently directly attached to the page.

Returns:
true if the page is one ancestor of the node.

processImportNode

public void processImportNode(com.gargoylesoftware.htmlunit.javascript.host.Document doc)
INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Lifecycle method to support special processing for js method importNode.

Parameters:
doc - the import target document
See Also:
Document.importNode( com.gargoylesoftware.htmlunit.javascript.host.Node, boolean), HtmlScript.processImportNode(Document)

hasFeature

protected boolean hasFeature(BrowserVersionFeatures feature)
Helper for a common call sequence.

Parameters:
feature - the feature to check
Returns:
true if the currently emulated browser has this feature.

isDescendant

protected boolean isDescendant(DomNode node)
Checks whether the specified node is descendant of this node or not.

Parameters:
node - the node to check if it is descendant or not
Returns:
whether the specified node is descendant of this node or not


Copyright © 2002–2014 Gargoyle Software Inc.. All rights reserved.