code: public Node previousNode() throws DOMException
    {
  
      if (!m_cacheNodes)
        throw new RuntimeException(
          XSLMessages.createXPATHMessage(XPATHErrorResources.ER_NODESET_CANNOT_ITERATE, null)); //"This NodeSet can not iterate to a previous node!");
  
      if ((m_next - 1) > 0)
      {
        m_next--;
  
        return this.elementAt(m_next);
      }
      else
        return null;
    }
docs: Returns the previous node in the set and moves the position of the
  iterator backwards in the set.
  @return  The previous <code>Node</code> in the set being iterated over,
  or<code>null</code> if there are no more members in that set.
  @throws DOMException
  INVALID_STATE_ERR: Raised if this method is called after the
  <code>detach</code> method was invoked.
  @throws RuntimeException thrown if this NodeSet is not of
  a cached type, and hence doesn't know what the previous node was.