TreeWalker オブジェクトは、 whatToShow フラグと (もしあれば) フィルタで定義される文書のビューを使った、文書ツリーや下位ツリーのナビゲートに使用される。 TreeWalker を使ってナビゲーションを行う任意の関数は、 TreeWalker で定義されるビューを自動的にサポートする。
下位ツリーの論理ビューからのノードの省略は、完全なフィルタされない文書内の同じ下位ツリーと実質的に異なる構造の中に結果を持てる。 TreeWalker ビュー内の 兄弟 であるノード同士は、本来のビュー内部では大きく離れた異なるノードの子であってもよい。具体的には、ノードと文書のルートノードを除くノード全てをスキップする NodeFilter を考える。元文書がどれだけネストした構造であっても、結果の論理ビューにおいて全テキストノードは 兄弟 であり、ルートノードの直接の子として出現する。
currentNodeNode型
TreeWalker が現在位置しているノード。TreeWalker に関連付けられたフィルタによってもう受け入れられないようにしてもよい。 currentNode はまた明示的に任意のノードに設定されてもよく、このときそのノードが root ノードによって規定される下位ツリー内部であるか、またフィルタと whatToShow フラグによって受け入れられるかどうかは問わない。それゆえトラバーサルは、要求される方向でのフィルタの適用により、それが現在のビューの一部でなかったとしても currentNode に関連が発生する; トラバーサル出来ない場合は、 currentNode は変更されない。expandEntityReferencesboolean型, 読取専用
TreeWalker から可視であるかどうかを判定する。 false ならば、実体参照ノードの子とその 子孫 は拒絶される。この拒絶は whatToShow とフィルタがある場合もそれより優先されることに注意。TreeWalker 生成時に whatToShow フラグで実体参照ノードを隠し、 expandEntityReferences を true に設定する。実体参照ノードを持ち実体を展開しない文書ビューの生成には、 whatToShow フラグで実体参照ノードを現し expandEntityReferences を false に設定する。filterNodeFilter型, 読取専用
rootNode型, 読取専用
TreeWalker の root ノード。whatToShowunsigned 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();
};