TreeWalker
オブジェクトは、 whatToShow
フラグと (もしあれば) フィルタで定義される文書のビューを使った、文書ツリーや下位ツリーのナビゲートに使用される。 TreeWalker
を使ってナビゲーションを行う任意の関数は、 TreeWalker
で定義されるビューを自動的にサポートする。
下位ツリーの論理ビューからのノードの省略は、完全なフィルタされない文書内の同じ下位ツリーと実質的に異なる構造の中に結果を持てる。 TreeWalker
ビュー内の 兄弟 であるノード同士は、本来のビュー内部では大きく離れた異なるノードの子であってもよい。具体的には、ノードと文書のルートノードを除くノード全てをスキップする NodeFilter
を考える。元文書がどれだけネストした構造であっても、結果の論理ビューにおいて全テキストノードは 兄弟 であり、ルートノードの直接の子として出現する。
currentNode
Node
型
TreeWalker
が現在位置しているノード。TreeWalker
に関連付けられたフィルタによってもう受け入れられないようにしてもよい。 currentNode
はまた明示的に任意のノードに設定されてもよく、このときそのノードが root
ノードによって規定される下位ツリー内部であるか、またフィルタと whatToShow
フラグによって受け入れられるかどうかは問わない。それゆえトラバーサルは、要求される方向でのフィルタの適用により、それが現在のビューの一部でなかったとしても currentNode
に関連が発生する; トラバーサル出来ない場合は、 currentNode
は変更されない。expandEntityReferences
boolean
型, 読取専用
TreeWalker
から可視であるかどうかを判定する。 false ならば、実体参照ノードの子とその 子孫 は拒絶される。この拒絶は whatToShow
とフィルタがある場合もそれより優先されることに注意。TreeWalker
生成時に whatToShow
フラグで実体参照ノードを隠し、 expandEntityReferences
を true に設定する。実体参照ノードを持ち実体を展開しない文書ビューの生成には、 whatToShow
フラグで実体参照ノードを現し expandEntityReferences
を false に設定する。filter
NodeFilter
型, 読取専用
root
Node
型, 読取専用
TreeWalker
の root
ノード。whatToShow
unsigned long
型, 読取専用
TreeWalker
経由で表されるものを決定する。使用可能な定数の集合は、 NodeFilter
インターフェイス内で定義される。 whatToShow
によって受け入れられないノードはスキップされるが、その子は依然として考慮される。フィルタが存在していてもこのスキップが優先されることに注意。firstChild
( )lastChild
( )nextNode
( )現在のノードに関連するドキュメントオーダー内で次の可視ノードまで TreeWalker
を移動し、新しいノードを返す。現在のノードが次ノードを持たない場合、また nextNode 検索が TreeWalker
の root
ノードから上に上がろうとする場合は null
を返し、現在のノードを維持する。
Node 型。新しいノード。 現在のノードが TreeWalker
の論理ビュー内に次ノードを持たない場合は null
。
nextSibling
( )parentNode
( )previousNode
( )現在のノードに関連するドキュメントオーダー内で前の可視ノードまで TreeWalker
を移動し、新しいノードを返す。現在のノードが前のノードを持たない場合、また previousNode
検索が TreeWalker
の root
ノードから上に上がろうとする場合は、 null
を返し現在のノードを維持する。
Node 型。新しいノード。 現在のノードが TreeWalker
の論理ビュー内に前のノードを持たない場合は null
。
previousSibling
( )// Introduced in DOM Level 2: interface TreeWalker { readonly attribute Node root; readonly attribute unsigned long whatToShow; readonly attribute NodeFilter filter; readonly attribute boolean expandEntityReferences; attribute Node currentNode; // raises(DOMException) on setting Node parentNode(); Node firstChild(); Node lastChild(); Node previousSibling(); Node nextSibling(); Node previousNode(); Node nextNode(); };