[1] DOM の界面 NamedNodeMap
は、名前で識別される節 (Node
)
の集まりです。
[2] NodeList
と異なり、
集まりの要素である各 Node
はそれぞれ異なる「名前」を持ちます。また、各 Node
の順序は必ずしも保存されません。
(item
method で索引番号を指定できますが、
内容の列挙のための便宜上のものだそうです。
(ということは、 (DOM 1 には何も書かれていませんが、) foreach my $i (0〜$NamedNodeMap.
が期待通りに動作する (全項目を1回ずつ出力する。) ことくらいは期待してよいのかな? (本当に全く順序が保証されないのなら、 loop 内で何もしなくても、 $i 番目の項目がどれかが勝手に変わっていく虞がある。))length
−1) { debug
.print
"${i}th item:" + $NamedNodeMap.item
($i) }
method | getNamedItem | 名前付き項目取得 | [DOM1] |
method | getNamedItemNS | 名前付き項目取得 | [DOM2] |
method | setNamedItem | 名前付き項目設定 | [DOM1] |
method | setNamedItemNS | 名前付き項目設定 | [DOM2] |
method | removeNamedItem | 名前付き項目削除 | [DOM1] |
method | removeNamedItemNS | 名前付き項目削除 | [DOM2] |
item | HTMLAttributeCollection (WinIE 4), NamedNodeMap (DOM水準1中核) | ||
length | HTMLAttributeCollection (WinIE 4), NamedNodeMap (DOM水準1中核) |
[4] perl などで実装するなら連想配列にするのがよさげです。
[6]
DOM水準2とDOM水準3によると、
同じ nodeName
で異なる
namespaceURI
の
Attr
節点が複数1つの
NamedNodeMap
に含まれる可能性があります。その場合、
DOM水準1のメソッドでどれが返されるかは実装依存です。ですが、常に同じものが返されなければなりません。
[7] NamedNodeMap
は次の箇所で使われています。
[8] DOM3 では索引付き特性にしか言及がありませんが、実際には名前付き特性によってもアクセスできるようです。
[11] Not worth it to rename NamedNodeMap · 64a93e8 · whatwg/dom ( ( 版)) <https://github.com/whatwg/dom/commit/64a93e85fa7a7284b068d1926eaeb3a0f9fd16d9>
[12] Introduce NamedNodeMap for attributes. Clean up algorithms around attrib... · 8af4826 · whatwg/dom ( ( 版)) <https://github.com/whatwg/dom/commit/8af48267390b971a2ac02c7005ba42c08264b7e1>
[13] Fix #141: NamedNodeMap's supported property names should not contain … · whatwg/dom@5dbefd1 ( 版) <https://github.com/whatwg/dom/commit/5dbefd1035c5528e236a8b13dabcbd6c649e2d3e>
[14] Fix #141 (again): omit non-lowercase property names from NamedNodeMap… · whatwg/dom@8898ac5 ( 版) <https://github.com/whatwg/dom/commit/8898ac57e5d9ea9b5592f5e61d42fc5e420c870b>
[15] Fix #141 (again): omit non-lowercase property names from NamedNodeMap… · whatwg/dom@8898ac5 ( 版) <https://github.com/whatwg/dom/commit/8898ac57e5d9ea9b5592f5e61d42fc5e420c870b>
[16] Add [CEReactions] annotations to mutating methods · whatwg/dom@3cd02d1 ( 版) <https://github.com/whatwg/dom/commit/3cd02d139c159a31fbb400e03932652c72fc7812>
[17] Editorial: define attribute list in terms of Infra's list (annevk著, ) <https://github.com/whatwg/dom/commit/f88c7a087268f5a9cf55b92c40754107e696d705>
attributes
以外は非標準です。attributes
は AttrExodus によってNode
からElement
に移動され、型もNamedNodeMap
ではなくAttr []
(read only array) に変更されています。