共通 DOM API

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」も参照してください。

導入されたバージョン:
DOM Level 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 に対してさらにトラバーサルが発生します。トラバーサルが不可能な場合、currentNode は変更されません。


setCurrentNode

void setCurrentNode(Node currentNode)
                    throws DOMException
TreeWalker が現在あるノード。
DOM ツリーを変更すると、現在のノードが TreeWalker の関連するノードに受け入れられなくなる可能性があります。また、root ノードによって指定されたサブツリー内にあるかどうかにかかわらず、あるいはフィルタと whatToShow フラグによって受け入れられるかどうかにかかわらず、currentNode は、明示的に任意のノードに設定することもできます。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

共通 DOM API

バグや機能要求の報告
Java は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 2004 Sun Microsystems, Inc. 4150 Network Circle
Santa Clara, California, 95054, U.S.A. All Rights Reserved.