DOM メソッドは、現在の の子の をgetChildNodes()返します。aは順序付けされていますが、リストはドキュメントの順序であることが保証されていますか?NodeListNodeNodeList
たとえば、 given<a><b/><c/><d/></a>はwithを返し、その順序で?a.getChildNodes()を返すことが保証されています。NodeListbcd
javadocはこれについて明確ではありません。
私の経験では、はい。DOM 仕様は明確ではありません。あなたが妄想的であるなら、次のようなことを試してください
current = node.firstChild;
while(null != current) {
...
current = current.nextSibling;
}
ドキュメント順のノード リストは、Javascript や Python など、DOM の他の実装での動作です。また、ランダムに並べられたノード リストはまったく役に立ちません。ドキュメント順に返されるノードに依存するのは安全だと思います。
私の経験では、わざわざ見てみるたびに、ドキュメントの順序になっていました。ただし、ドキュメントの順序であることが保証されていない場所をどこかで読んだと思います。私は今それを読んだ場所を見つけることができないので、伝聞として受け取ってください. ドキュメントの順序でそれらを保持する必要がある場合の最善の策は、兄弟がなくなるまで FirstChild を使用してから NextSibling を使用することだと思います。
はい、nodeList を返すときに順序付けられます。namedNodeList のように順序付けされていないリストを取得するには、getNamedChildNodes と言う必要があります。
これは保証されていることをお伝えしたいと思います (私はそう信じています) が、この場合、ドキュメント オブジェクト モデルの仕様自体があいまいなようです。ただし、常にドキュメント順であると確信しています。
あなたの例では、提示されているとおりです。そう信じる。ただし、スペースがノードとして解釈された実世界の経験を経験したので、次のようになります。
<a><b/><c/><d/></a>
とは異なります
<a><b/> <c/><d/></a>
インデックス [1] を見ている場合、Firefox と IE では異なる結果が表示される可能性があります。必要に応じて注文に頼らないことをお勧めします。