* NamedNodeMap (DOM) [1] [[DOM]] の界面 [CODE(DOMi)[NamedNodeMap]] は、名前で識別される節 ([CODE(DOM)[[[Node]]]]) の集まりです。 [2] [CODE(DOM)[[[NodeList]]]] と異なり、 集まりの要素である各 [CODE(DOM)[Node]] はそれぞれ異なる「名前」を持ちます。また、各 [CODE(DOM)[Node]] の順序は必ずしも保存されません。 ([CODE(DOMm)[item]] method で索引番号を指定できますが、 内容の列挙のための便宜上のものだそうです。 [WEAK[(ということは、 [WEAK[(DOM 1 には何も書かれていませんが、)]] [CODE[foreach my [VAR[$i]] (0〜[VAR[$NamedNodeMap]].[CODE(DOMa)[length]]−1) { [CODE(object)[debug]].[CODE(method)[print]] "[VAR[${i}]]th item:" + [VAR[$NamedNodeMap]].[CODE(DOMm)[item]] ([VAR[$i]]) }]] が期待通りに動作する [WEAK[(全項目を1回ずつ出力する。)]] ことくらいは期待してよいのかな? [WEAK[(本当に全く順序が保証されないのなら、 loop 内で何もしなくても、 [VAR[$i]] 番目の項目がどれかが勝手に変わっていく虞がある。)]])]] [3] ,method ,[CODE(DOMm)[[[getNamedItem]]]] ,名前付き項目取得 ,[DOM1] ,method ,[CODE(DOMm)[[[getNamedItemNS]]]] ,名前付き項目取得 ,[DOM2] ,method ,[CODE(DOMm)[[[setNamedItem]]]] ,名前付き項目設定 ,[DOM1] ,method ,[CODE(DOMm)[[[setNamedItemNS]]]] ,名前付き項目設定 ,[DOM2] ,method ,[CODE(DOMm)[[[removeNamedItem]]]] ,名前付き項目削除 ,[DOM1] ,method ,[CODE(DOMm)[[[removeNamedItemNS]]]] ,名前付き項目削除 ,[DOM2] ,[CODE(DOMm)@en[[[item]]]] ,"[CODE(DOMi)@en[[[HTMLAttributeCollection]]]] ([[WinIE 4]]), [CODE(DOMi)@en[[[NamedNodeMap]]]] ([[DOM水準1中核]])" ,[CODE(DOMa)@en[[[length]]]] ,"[CODE(DOMi)@en[[[HTMLAttributeCollection]]]] ([[WinIE 4]]), [CODE(DOMi)@en[[[NamedNodeMap]]]] ([[DOM水準1中核]])" [4] [[perl]] などで実装するなら[[連想配列]]にするのがよさげです。 - [DOM1] ''Document Object Model (Core) Level 1'' - [DOM2] ''Document Object Model Core'' - [5] >>4 でも module を [[bless]] してうまくまとめないと DOM 非適合になりそうな罠。うまくやっとくれよ。 [6] [[DOM水準2]]と[[DOM水準3]]によると、 同じ [CODE(DOMa)@en[[[nodeName]]]] で異なる [CODE(DOMa)@en[[[namespaceURI]]]] の [CODE(DOMi)@en[[[Attr]]]] [[節点]]が複数1つの [CODE(DOMi)@en[[[NamedNodeMap]]]] に含まれる可能性があります。その場合、 [[DOM水準1]]の[[メソッド]]でどれが返されるかは[[実装依存]]です。ですが、常に同じものが返されなければ鳴りません。 ([[名無しさん]]) [7] [[DOM水準2]]と[[DOM水準3]]によると、 同じ [CODE(DOMa)@en[[[nodeName]]]] で異なる [CODE(DOMa)@en[[[namespaceURI]]]] の [CODE(DOMi)@en[[[Attr]]]] [[節点]]が複数1つの [CODE(DOMi)@en[[[NamedNodeMap]]]] に含まれる可能性があります。その場合、 [[DOM水準1]]の[[メソッド]]でどれが返されるかは[[実装依存]]です。ですが、常に同じものが返されなければ鳴りません。 ([[名無しさん]]) [[#comment]] * メモ