ECMA-357 Annex A に記載されているオプションの E4X 機能をすべて実装していますが、domNodeList (§A.1.2 および §A.2.2) の実装に問題があります。独自の NodeList オブジェクトを作成するにはどうすればよいですか?
新しい XMLDocument を作成し、XMLList 内のノードのすべての domNode() 表現を追加しても、コメントや処理命令は通常除外されるため、すべてを含む NodeList を作成する方法がわかりません。
ECMA-357 Annex A に記載されているオプションの E4X 機能をすべて実装していますが、domNodeList (§A.1.2 および §A.2.2) の実装に問題があります。独自の NodeList オブジェクトを作成するにはどうすればよいですか?
新しい XMLDocument を作成し、XMLList 内のノードのすべての domNode() 表現を追加しても、コメントや処理命令は通常除外されるため、すべてを含む NodeList を作成する方法がわかりません。
ドキュメント フラグメントの childNodes 属性を使用して NodeList を作成できることがわかりました。これが私の解決策でした:
XML.prototype.function::domNodeList = function () {
var fragment = document.createDocumentFragment(),
len = this.length(),
i = 0;
for (; i < len; i++) {
fragment.appendChild(this[i].domNode());
}
return fragment.childNodes;
}