Module java.desktop
Package javax.swing.text

Class ElementIterator

java.lang.Object
javax.swing.text.ElementIterator
所有已实现的接口:
Cloneable

public class ElementIterator extends Object implements Cloneable
ElementIterator,顾名思义,用于遍历Element树。构造函数可以接受DocumentElement作为参数。如果使用Document作为参数调用构造函数,则迭代的根是document.getDefaultRootElement()的返回值。

遍历以深度优先方式进行。关于如何处理边界条件:

ElementIterator不对Element树进行任何锁定。这意味着它不会跟踪任何更改。使用此类的用户有责任确保在元素迭代期间不会发生更改。

简单的使用示例:

public void iterate() {
      ElementIterator it = new ElementIterator(root);
      Element elem;
      while (true) {
          if ((elem = it.next()) != null) {
              // 处理元素
              System.out.println("elem: " + elem.getName());
          } else {
              break;
          }
      }
 }
  • Constructor Details

    • ElementIterator

      public ElementIterator(Document document)
      创建一个新的ElementIterator。根元素用于获取文档的默认根元素。
      参数:
      document - 一个Document
    • ElementIterator

      public ElementIterator(Element root)
      创建一个新的ElementIterator
      参数:
      root - 根Element
  • Method Details

    • clone

      public Object clone()
      克隆ElementIterator
      覆盖:
      clone 在类 Object
      返回:
      一个克隆的ElementIterator对象
      参见:
    • first

      public Element first()
      获取第一个元素。
      返回:
      一个Element
    • depth

      public int depth()
      获取元素树的当前深度。
      返回:
      深度
    • current

      public Element current()
      获取当前Element
      返回:
      栈顶的元素或null(如果根元素为null
    • next

      public Element next()
      获取下一个Element。用于定位下一个元素的策略是深度优先搜索。
      返回:
      下一个元素或列表结束时返回null
    • previous

      public Element previous()
      获取前一个Element。但是,如果当前元素是最后一个元素,或当前元素为null,则返回null
      返回:
      如果可用,则返回前一个Element