DOM/DOMXPathNavigator.php
public function MoveToFollowing( $kind, $end = null )
	{
		if	(	is_null( $this->domNode ) ||
				is_null( $kind ) ||
			  	$this->domNode instanceof \DOMAttr  ||
				$this->domNode instanceof \DOMNameSpaceNode
			) return false;

		if ( ! is_null( $end ) && $this->IsSamePosition( $end ) ) return false;

		if ( $this->domNode instanceof \DOMDocument )
		{
			$this->domNode = $this->domNode->documentElement;
			return true;
		}

		/**
		 * @var \DOMElement $node
		 */
		$node = $this->domNode;

		while( true )
		{
			if ( $node->hasChildNodes() )
			{
				$node = $node->firstChild;
			}
			else
			{
				while( true )
				{
					if ( is_null( $node->nextSibling ) )
					{
						if ( $node->parentNode instanceof \DOMDocument ) return false;

						$node = $node->parentNode;
					}
					else
					{
						$node = $node->nextSibling;
						if ( ! is_null( $end ) && $node->isSameNode( $end->getUnderlyingObject() ) ) return false;
						break;
					}
				}
			}

			if ( XPathNodeType::All == $kind || $node->nodeType == $kind ) break;
		}

		$this->domNode = $node;
		return true;
	}
public function MoveToFollowing( $kind, $end = null )
	{
		if	(	is_null( $this->domNode ) ||
				is_null( $kind ) ||
			  	$this->domNode instanceof \DOMAttr  ||
				$this->domNode instanceof \DOMNameSpaceNode
			) return false;

		if ( ! is_null( $end ) && $this->IsSamePosition( $end ) ) return false;

		if ( $this->domNode instanceof \DOMDocument )
		{
			$this->domNode = $this->domNode->documentElement;
			return true;
		}

		/**
		 * @var \DOMElement $node
		 */
		$node = $this->domNode;

		while( true )
		{
			if ( $node->hasChildNodes() )
			{
				$node = $node->firstChild;
			}
			else
			{
				while( true )
				{
					if ( is_null( $node->nextSibling ) )
					{
						if ( $node->parentNode instanceof \DOMDocument ) return false;

						$node = $node->parentNode;
					}
					else
					{
						$node = $node->nextSibling;
						if ( ! is_null( $end ) && $node->isSameNode( $end->getUnderlyingObject() ) ) return false;
						break;
					}
				}
			}

			if ( XPathNodeType::All == $kind || $node->nodeType == $kind ) break;
		}

		$this->domNode = $node;
		return true;
	}
public function MoveToFollowing ( $ kind , $ end = null ) { if ( is_null ( $ this -> domNode ) || is_null ( $ kind ) || $ this -> domNode instanceof \ DOMAttr || $ this -> domNode instanceof \ DOMNameSpaceNode ) return false ; if ( ! is_null ( $ end ) && $ this -> IsSamePosition ( $ end ) ) return false ; if ( $ this -> domNode instanceof \ DOMDocument ) { $ this -> domNode = $ this -> domNode -> documentElement ; return true ; } /**
		 * @var \DOMElement $node
		 */ $ node = $ this -> domNode ; while ( true ) { if ( $ node -> hasChildNodes ( ) ) { $ node = $ node -> firstChild ; } else { while ( true ) { if ( is_null ( $ node -> nextSibling ) ) { if ( $ node -> parentNode instanceof \ DOMDocument ) return false ; $ node = $ node -> parentNode ; } else { $ node = $ node -> nextSibling ; if ( ! is_null ( $ end ) && $ node -> isSameNode ( $ end -> getUnderlyingObject ( ) ) ) return false ; break ; } } } if ( XPathNodeType :: All == $ kind || $ node -> nodeType == $ kind ) break ; } $ this -> domNode = $ node ; return true ; }
Moves the XPathNavigator to the following element of the XPathNodeType specified, to the boundary specified,
in document order.

@param XPathNodeType $kind : The XPathNodeType of the element. The XPathNodeType cannot be XPathNodeType.Attribute or
XPathNodeType.Namespace.
@param XPathNavigator $end : (optional) The XPathNavigator object positioned on the element boundary which the current
XPathNavigator will not move past while searching for the following element.

@return bool	true if the XPathNavigator moved successfully; otherwise false.
Moves the XPathNavigator to the following element of the XPathNodeType specified to the boundary specified in document order .