モジュール java.xml
パッケージ org.w3c.dom.traversal

インタフェースTreeWalker


  • public interface TreeWalker
    TreeWalkerオブジェクトは、whatToShowフラグとフィルタ(存在する場合)により定義されたドキュメントのビューを使用して、ドキュメント・ツリーまたはサブツリーを移動するために使用されます。 TreeWalkerを使って移動する関数は、TreeWalkerによって定義されたビューを自動的にサポートします。

    サブツリーの論理ビューからノードを省略すると、その構造は、フィルタ処理されていない完全なドキュメントの同一サブツリーとはかなり異なる構造になります。 TreeWalkerビューで兄弟であるノードが、元のビューでは異なる別々のノードの子である可能性もあります。 たとえば、ドキュメントのTextノードとルート・ノード以外のすべてのノードをスキップするNodeFilterを考えてみます。 この結果の論理ビューでは、元のドキュメントの構造がどれだけ深く入れ子になっているかにかかわらず、すべてのテキスト・ノードは兄弟になり、ルート・ノードの直接の子として表示されます。

    Document Object Model (DOM) Level 2 Traversal and Range Specification」も参照してください。

    導入されたバージョン:
    9、DOMレベル2
    • メソッドのサマリー

      すべてのメソッド インスタンス・メソッド 抽象メソッド 
      修飾子と型 メソッド 説明
      Node firstChild()
      TreeWalkerを現在のノードの最初の可視の子に移動し、新規ノードを返します。
      Node getCurrentNode()
      TreeWalkerが現在あるノード。
      boolean getExpandEntityReferences()
      このフラグの値は、実体参照ノードの子がTreeWalkerから可視かどうかを判定します。
      NodeFilter getFilter()
      ノードの選別に使用されるフィルタ。
      Node getRoot()
      作成時に指定されたTreeWalkerrootノード。
      int getWhatToShow()
      この属性は、TreeWalkerを使用して表されるノード型を判定します。
      Node lastChild()
      TreeWalkerを現在のノードの最後の可視の子まで移動させ、新規ノードを返します。
      Node nextNode()
      TreeWalkerを現在のノードについてドキュメント順に次の可視ノードまで移動し、新規ノードを返します。
      Node nextSibling()
      TreeWalkerを現在のノードの次の兄弟まで移動させ、新規ノードを返します。
      Node parentNode()
      現在のノードのもっとも近い可視の上位ノードに移動し、そのノードを返します。
      Node previousNode()
      TreeWalkerを現在のノードについてドキュメント順に前の可視ノードまで移動し、新規ノードを返します。
      Node previousSibling()
      TreeWalkerを現在のノードの前の兄弟まで移動させ、新規ノードを返します。
      void setCurrentNode​(Node currentNode)
      TreeWalkerが現在あるノード。
    • メソッドの詳細

      • getRoot

        Node getRoot()
        作成時に指定されたTreeWalkerrootノード。
      • getWhatToShow

        int getWhatToShow()
        この属性は、TreeWalkerを使用して表されるノード型を判定します。 利用可能な定数のセットは、NodeFilterインタフェースで定義されます。 whatToShowによって受け入れられないノードはスキップされますが、ノードの子は引き続き考慮されます。 フィルタがある場合、このスキップはフィルタよりも優先されます。
      • getFilter

        NodeFilter getFilter()
        ノードの選別に使用されるフィルタ。
      • getExpandEntityReferences

        boolean getExpandEntityReferences()
        このフラグの値は、実体参照ノードの子がTreeWalkerから可視かどうかを判定します。 falseの場合、子とその子孫は拒否されます。 この拒否は、whatToShowとフィルタ(存在する場合)よりも優先されます。
        展開された実体参照を持ち、実体参照ノード自体を表示しないドキュメントのビューを生成するには、TreeWalkerの作成時にwhatToShowフラグを使用して実体参照ノードを非表示にし、expandEntityReferencesをtrueに設定します。
        実体参照ノードを持ち、実体展開を持たないドキュメントのビューを生成するには、whatToShowフラグを使用して実体参照ノードを表示し、expandEntityReferencesをfalseに設定します。
      • getCurrentNode

        Node getCurrentNode()
        TreeWalkerが現在あるノード。
        DOMツリーを変更すると、現在のノードがTreeWalkerの関連するノードに受け入れられなくなる可能性があります。また、rootノードによって指定されたサブツリー内にあるかどうかにかかわらず、あるいはフィルタとwhatToShowフラグによって受け入れられるかどうかにかかわらず、currentNodeは、明示的に任意のノードに設定することもできます。
        currentNodeが現在のビューの一部ではない場合でも、要求された方向にフィルタを適用すると、これに対してさらにトラバーサルが発生します。トラバーサルが不可能な場合、currentNodeは変更されません。
      • setCurrentNode

        void setCurrentNode​(Node currentNode)
                     throws DOMException
        TreeWalkerが現在あるノード。
        DOMツリーを変更すると、現在のノードがTreeWalkerの関連するノードに受け入れられなくなる可能性があります。また、rootノードによって指定されたサブツリー内にあるかどうかにかかわらず、あるいはフィルタとwhatToShowフラグによって受け入れられるかどうかにかかわらず、currentNodeは、明示的に任意のノードに設定することもできます。
        currentNodeが現在のビューの一部ではない場合でも、要求された方向にフィルタを適用すると、これに対してさらにトラバーサルが発生します。トラバーサルが不可能な場合、currentNodeは変更されません。
        例外:
        DOMException - NOT_SUPPORTED_ERR: currentNodenullに設定しようとした場合に発生する。
      • parentNode

        Node parentNode()
        現在のノードのもっとも近い可視の上位ノードに移動し、そのノードを返します。 parentNodeの検索で、TreeWalkerrootノードより上にたどろうとした場合、あるいは可視の上位ノードの検索に失敗した場合、このメソッドは現在の位置を維持し、nullを返します。
        戻り値:
        新規の親ノード、現在のノードがTreeWalkerの論理ビューに親を持たない場合はnull
      • firstChild

        Node firstChild()
        TreeWalkerを現在のノードの最初の可視の子に移動し、新規ノードを返します。 現在のノードが可視の子を持たない場合、nullを返し、現在のノードを維持します。
        戻り値:
        新規ノード、現在のノードがTreeWalkerの論理ビューで可視の子を持たない場合はnull
      • lastChild

        Node lastChild()
        TreeWalkerを現在のノードの最後の可視の子まで移動させ、新規ノードを返します。 現在のノードが可視の子を持たない場合、nullを返し、現在のノードを維持します。
        戻り値:
        新規ノード、現在のノードがTreeWalkerの論理ビューで子を持たない場合はnull
      • previousSibling

        Node previousSibling()
        TreeWalkerを現在のノードの前の兄弟まで移動させ、新規ノードを返します。 現在のノードが可視の前の兄弟を持たない場合、nullを返し、現在のノードを維持します。
        戻り値:
        新規ノード、現在のノードがTreeWalkerの論理ビューで前の兄弟を持たない場合はnull
      • nextSibling

        Node nextSibling()
        TreeWalkerを現在のノードの次の兄弟まで移動させ、新規ノードを返します。 現在のノードが可視の次の兄弟を持たない場合、nullを返し、現在のノードを維持します。
        戻り値:
        新規ノード、現在のノードがTreeWalkerの論理ビューで次の兄弟を持たない場合はnull
      • previousNode

        Node previousNode()
        TreeWalkerを現在のノードについてドキュメント順に前の可視ノードまで移動し、新規ノードを返します。 現在のノードが前のノードを持たない場合、あるいはpreviousNodeの検索で、TreeWalkerrootノードより上にたどろうとした場合、nullを返し、現在のノードを維持します。
        戻り値:
        新規ノード、現在のノードがTreeWalkerの論理ビューで前のノードを持たない場合はnull
      • nextNode

        Node nextNode()
        TreeWalkerを現在のノードについてドキュメント順に次の可視ノードまで移動し、新規ノードを返します。 現在のノードが次のノードを持たない場合、あるいはnextNodeの検索で、TreeWalkerrootノードより上にたどろうとした場合、nullを返し、現在のノードを維持します。
        戻り値:
        新規ノード、現在のノードがTreeWalkerの論理ビューで次のノードを持たない場合はnull