共通 DOM API

org.w3c.dom
インタフェース NamedNodeMap


public interface NamedNodeMap

NamedNodeMap インタフェースを実装するオブジェクトは、名前によってアクセスされるノードのコレクションを表示するために使用されます。NamedNodeMapNodeList から継承されないため、NamedNodeMaps は特定の順序で保持されないことに注意してください。NamedNodeMap を実装するオブジェクトに含まれるオブジェクトは、順序を示すインデックスでアクセスできますが、単にこれは NamedNodeMap の内容が便宜上列挙できるようにするためで、DOM がこれらのノードに対する順序を指定することを意味するものではありません。

DOM 内の NamedNodeMap オブジェクトはライブです。

「Document Object Model (DOM) Level 3 Core Specification」も参照してください。


メソッドの概要
 int getLength()
          このマップのノード数。
 Node getNamedItem(String name)
          名前により指定されたノードを取得します。
 Node getNamedItemNS(String namespaceURI, String localName)
          指定されたローカル名と名前空間 URI を持つノードを取得します。
 Node item(int index)
          このマップの index 番目の項目を返します。
 Node removeNamedItem(String name)
          名前により指定されたノードを削除します。
 Node removeNamedItemNS(String namespaceURI, String localName)
          ローカル名と URI 名前空間によって指定されたノードを削除します。
 Node setNamedItem(Node arg)
          特定のノードをその nodeName 属性を使って追加します。
 Node setNamedItemNS(Node arg)
          namespaceURIlocalName を使用してノードを追加します。
 

メソッドの詳細

getNamedItem

Node getNamedItem(String name)
名前により指定されたノードを取得します。

パラメータ:
name - 取得するノードの nodeName
戻り値:
指定された nodeName を持つ Node (任意の種類)、このマップでノードとして識別されない場合は null

setNamedItem

Node setNamedItem(Node arg)
                  throws DOMException
特定のノードをその nodeName 属性を使って追加します。同じ名前を持つノードがマップ内に存在していた場合、そのノードは新しいノードで置き換えられます。特定のノードを同じ名前のノードで置き換えても、何も変更されません。
マップ内のノード名は、nodeName 属性に基づいて決定されるため、「特殊な」文字列値を持つ特定の種類のノードを複数格納することはできません。名前が衝突してしまうからです。この動作は、ノードの別名を認めるよりは好ましいと言えます。

パラメータ:
arg - このマップに格納するノード。このノードには追加後、nodeName 属性の値を指定してアクセスできる
戻り値:
新しい Node が既存の属性を置き換える場合、置き換えられた Node が返され、そうでない場合は null が返される
例外:
DOMException - WRONG_DOCUMENT_ERR: arg を作成したドキュメントとこのマップを作成したドキュメントが異なる場合に発生する
NO_MODIFICATION_ALLOWED_ERR: このマップが読み取り専用の場合に発生する
INUSE_ATTRIBUTE_ERR: arg に指定された Attr ノードが、別の Element オブジェクト内ですでに使用されている場合に発生する。ほかの要素内の Attr ノードを使用するには、その属性を明示的にコピーする必要がある
HIERARCHY_REQUEST_ERR: この NamedNodeMap に属さないノードを追加しようとした場合に発生する。たとえば、Attr 以外のノードを Element の属性マップに挿入しようとしたり、Entity 以外のノードを DocumentType のエンティティマップに挿入しようとしたりした場合が考えられる

removeNamedItem

Node removeNamedItem(String name)
                     throws DOMException
名前により指定されたノードを削除します。このマップが要素に接続された属性を含む場合、削除された属性がデフォルト値を持っていることがわかるときは、属性は、対応する名前空間 URI、ローカルの名前、接頭辞 (適用可能の場合) とともにただちにデフォルト値を含んでいることを表示します。

パラメータ:
name - 削除するノードの nodeName
戻り値:
ノードに同じ名前が存在する場合、このマップから削除されるノード
例外:
DOMException - NOT_FOUND_ERR: name を名前に持つノードがこのマップ内に存在しない場合に発生する
NO_MODIFICATION_ALLOWED_ERR: このマップが読み取り専用の場合に発生する

item

Node item(int index)
このマップの index 番目の項目を返します。index がこのマップのノード数より大きいかまたは等しい場合、 null を返します。

パラメータ:
index - このマップ内のインデックス
戻り値:
マップの index 番目の位置にあるノード、このノードが有効なインデックスではない場合 null

getLength

int getLength()
このマップのノード数。有効な子ノードのインデックスの範囲は 0 から length-1 です。


getNamedItemNS

Node getNamedItemNS(String namespaceURI,
                    String localName)
                    throws DOMException
指定されたローカル名と名前空間 URI を持つノードを取得します。
[XML Namespaces] で説明しているように、 アプリケーションで名前空間を設定したくない場合は、各メソッドの namespaceURI パラメータに null を指定する必要があります。

パラメータ:
namespaceURI - 取得するノードの名前空間 URI
localName - 取得するノードのローカル名
戻り値:
特定のローカル名と URI 名前空間を持つ Node (任意の種類)、このマップでノードとして識別されない場合は null
例外:
DOMException - NOT_SUPPORTED_ERR: 「XML」機能が実装でサポートされておらず、XML 名前空間 ([HTML 4.01] など) もドキュメントで公開される言語でサポートされていない場合、発生する可能性がある
導入されたバージョン:
DOM Level 2

setNamedItemNS

Node setNamedItemNS(Node arg)
                    throws DOMException
namespaceURIlocalName を使用してノードを追加します。そのローカル名と名前空間 URI を持つノードがすでにこのマップにある場合は、新しいノードに置き換えられます。特定のノードを同じ名前のノードで置き換えても、何も変更されません。
[XML Namespaces] で説明しているように、 アプリケーションで名前空間を設定したくない場合は、各メソッドの namespaceURI パラメータに null を指定する必要があります。

パラメータ:
arg - このマップに格納するノード。ノードには、あとでその namespaceURIlocalName の属性値を使用してアクセスできる
戻り値:
新しい Node が既存の属性を置き換える場合、置き換えられた Node が返され、そうでない場合は null が返される
例外:
DOMException - WRONG_DOCUMENT_ERR: arg を作成したドキュメントとこのマップを作成したドキュメントとが異なる場合に発生する
NO_MODIFICATION_ALLOWED_ERR: このマップが読み取り専用の場合に発生する
INUSE_ATTRIBUTE_ERR: arg に指定された Attr ノードが、別の Element オブジェクト内ですでに使用されている場合に発生する。ほかの要素内の Attr ノードを使用するには、その属性を明示的にコピーする必要がある
HIERARCHY_REQUEST_ERR: この NamedNodeMap に属さないノードを追加しようとした場合に発生する。たとえば、Attr 以外のノードを Element の属性マップに挿入しようとしたり、Entity 以外のノードを DocumentType のエンティティマップに挿入しようとしたりした場合が考えられる
NOT_SUPPORTED_ERR: 「XML」機能が実装でサポートされておらず、XML 名前空間 ([HTML 4.01] など) もドキュメントで公開される言語でサポートされていない場合、発生する可能性がある
導入されたバージョン:
DOM Level 2

removeNamedItemNS

Node removeNamedItemNS(String namespaceURI,
                       String localName)
                       throws DOMException
ローカル名と URI 名前空間によって指定されたノードを削除します。このマップが要素に接続された属性を含む場合、 Node の属性がこの属性によって返されるので、削除された属性がデフォルト値を持っていることがわかります。その場合には、属性が対応する URI 名前空間、ローカル名、接頭辞 (適用可能の場合) とともにデフォルト値を持っていることを直に表示します。
[XML Namespaces] で説明しているように、 アプリケーションで名前空間を設定したくない場合は、各メソッドの namespaceURI パラメータに null を指定する必要があります。

パラメータ:
namespaceURI - 削除するノードの名前空間 URI
localName - 削除するノードのローカル名
戻り値:
ノードに同じローカル名と URI 名前空間が存在する場合、このマップから削除されるノード
例外:
DOMException - NOT_FOUND_ERR: 指定された namespaceURIlocalName を持つノードがこのマップ内に存在しない場合に発生する
NO_MODIFICATION_ALLOWED_ERR: このマップが読み取り専用の場合に発生する
NOT_SUPPORTED_ERR: 「XML」機能が実装でサポートされておらず、XML 名前空間 ([HTML 4.01] など) もドキュメントで公開される言語でサポートされていない場合、発生する可能性がある
導入されたバージョン:
DOM Level 2

共通 DOM API

バグや機能要求の報告
Java は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 2004 Sun Microsystems, Inc. 4150 Network Circle
Santa Clara, California, 95054, U.S.A. All Rights Reserved.