Module java.xml

Interface NodeIterator


public interface NodeIterator
NodeIterators 用于遍历一组节点,例如在NodeList中的节点集,由特定Node管理的文档子树,查询结果或任何其他节点集。要遍历的节点集由NodeIterator的实现确定。DOM Level 2为文档子树的按顺序遍历指定了单个NodeIterator实现。通过调用DocumentTraversal.createNodeIterator()来创建这些NodeIterators的实例。

另请参阅文档对象模型(DOM)Level 2遍历和范围规范

自从:
9,DOM Level 2
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    detach()
    从其遍历的集合中分离NodeIterator,释放任何计算资源,并将NodeIterator置于INVALID状态。
    boolean
    此标志的值确定实体引用节点的子节点是否对NodeIterator可见。
    用于筛选节点的NodeFilter
    NodeIterator的根节点,在创建时指定。
    int
    此属性确定通过NodeIterator呈现哪些节点类型。
    返回集合中的下一个节点,并推进NodeIterator的位置。
    返回集合中的上一个节点,并将NodeIterator的位置向后移动。
  • Method Details

    • getRoot

      Node getRoot()
      NodeIterator的根节点,在创建时指定。
    • getWhatToShow

      int getWhatToShow()
      此属性确定通过NodeIterator呈现哪些节点类型。可用的常量集在NodeFilter接口中定义。不被whatToShow接受的节点将被跳过,但其子节点仍可能被考虑。请注意,此跳过优先于任何筛选器。
    • getFilter

      NodeFilter getFilter()
      用于筛选节点的NodeFilter
    • getExpandEntityReferences

      boolean getExpandEntityReferences()
      此标志的值确定实体引用节点的子节点是否对NodeIterator可见。如果为false,则这些子节点及其后代将被拒绝。请注意,此拒绝优先于whatToShow和筛选器。还请注意,这是目前唯一一种情况,其中NodeIterators可能拒绝整个子树而不是跳过单个节点。

      要生成一个展开实体引用并且不公开实体引用节点本身的文档视图,请使用whatToShow标志隐藏实体引用节点,并在创建NodeIterator时将expandEntityReferences设置为true。要生成具有实体引用节点但不展开实体的文档视图,请使用whatToShow标志显示实体引用节点,并将expandEntityReferences设置为false。
    • nextNode

      Node nextNode() throws DOMException
      返回集合中的下一个节点,并推进NodeIterator的位置。创建NodeIterator后,第一次调用nextNode()将返回集合中的第一个节点。
      返回:
      正在遍历的集合中的下一个Node,如果该集合中没有更多成员,则返回null
      抛出:
      DOMException - INVALID_STATE_ERR: 如果在调用detach方法后调用此方法,则会引发异常。
    • previousNode

      Node previousNode() throws DOMException
      返回集合中的上一个节点,并将NodeIterator的位置向后移动。
      返回:
      正在遍历的集合中的上一个Node,如果该集合中没有更多成员,则返回null
      抛出:
      DOMException - INVALID_STATE_ERR: 如果在调用detach方法后调用此方法,则会引发异常。
    • detach

      void detach()
      从其遍历的集合中分离NodeIterator,释放任何计算资源,并将NodeIterator置于INVALID状态。调用detach后,对nextNodepreviousNode的调用将引发异常INVALID_STATE_ERR。