Element (Org.W3C.DOM Package)

Node を継承します。作成者が文書を処理するときに参照する (Text を除く) ほとんどのオブジェクトは、Element ノードです。例えば次のような XML 文書を想定してみます。

<elementExample id="demo"> <subelement1/> <subelement2><subsubelement/></subelement2>

</elementExample>

DOM を使用して表される場合は、"elementExample" のトップのノードは Element ノードです。これには、1 つは"subelement1" に対する子ノード、もう 1 つは "subelement2" に対する子ノードの 2 つの子 Element ノードが含まれます。"subelement1" には子ノードは含まれません。

要素にはそれらに関連した属性があります。これは Element インターフェースが Node を継承していて、包括的な Node インターフェースメソッドである getAttributes を使用して、要素のすべての属性を引き出せるからです。Element インターフェースにも、Attr オブジェクトまたは属性値を名前を使用して引き出すメソッドがあります。XML では、属性値にエンティティ参照が含まれる場合があるため、Attr オブジェクトを取り出して、属性値を表すかなり複雑なサブツリーを調べる必要があります。一方 HTML では、すべての属性が単純な文字列値を持っているので属性に直接アクセスするメソッドは、簡便に安全に使用できます。

メソッドについては、以下を参照してください。

getAttribute

属性値を名前で取得します。

構文:

public java.lang.String getAttribute(java.lang.String name)

パラメータ

name - 取得する属性の名前です。

戻り値:

文字列の Attr 値です。または属性値が指定した値や、デフォルトの値を持っていない場合は空の文字列が返されます。

getAttributeNode

Attr ノードを名前で取得します。

構文:

public Attr getAttributeNode(java.lang.String name)

パラメータ

name - 取得する属性の名前です。

戻り値:

指定した属性名を持つ Attr ノードです。または指定した名前の属性がない場合は Null が返されます。

getElementsByTagName

指定したタグ名を持つすべての下位要素の NodeList を、Element ツリーの先行順走査で検出される順に返します。

構文:

public NodeList getElementsByTagName(java.lang.String name)

パラメータ

name - 一致するタグの名前です。特別な値 "*" はすべてのタグに一致します。

戻り値:

一致した Element ノードのリストです。

getTagName

要素名です。例えば、<elementExample id="demo"> ... </elementExample> の場合、tagName の値は "elementExample" になります。XML では、他のすべての DOM 処理と同じく大文字と小文字が区別されます。HTML DOM では、元の HTML 文書が大文字小文字にかかわらず、標準の大文字の形で HTML の tagName が返されます。

構文:

public java.lang.String getTagName()

normalize

Element の下位にあるすべてのサブツリーの全 Text ノードを、「ノーマルな」形式にします。つまりマークアップのみ (例: タグ、コメント、処理命令、CDATA セクション、エンティティ参照) が Text ノードを区別します。Text ノード同士が隣り合うことはありません。この処理は、DOM による文書の参照が、文書が保存され再ロードされたときと同様に行われることを保証するために使用できます。これは (XPointer の検索のような) 特定の文書ツリー構造に依存する処理が行われるときに有用です。

構文:

public void normalize()

removeAttribute

属性を名前で削除します。削除された属性がデフォルト値の場合はすぐに置換されます。

構文:

public void removeAttribute(java.lang.String name)
             throws DOMException

パラメータ

name - 削除する属性の名前です。

例外処理:

DOMException - NO_MODIFICATION_ALLOWED_ERR: このノードが読み込み専用の場合に発生します。

removeAttributeNode

指定した属性を削除します。

構文:

public Attr removeAttributeNode(Attr oldAttr)
           throws DOMException

パラメータ

oldAttr - 属性リストから削除する Attr ノードです。削除された Attr にデフォルト値がある場合は、すぐに置換されます。

戻り値:

削除された Attr ノードです。

例外処理:

DOMException - NO_MODIFICATION_ALLOWED_ERR: このノードが読み込み専用の場合に発生します。

NOT_FOUND_ERR: oldAttr が要素の属性ではない場合に発生します。

setAttribute

新しい属性を追加します。同じ名前の属性がすでに要素内にある場合は、値がパラメータで指定した値に置換されます。この値は単純な文字列であり、設定されるときに解析されません。すべてのマークアップ (エンティティ参照として認識される構文など) はリテラル文字列として認識されます。書き出されるときには実装によって適切にエスケープされる必要があります。エンティティ参照を含む属性値を割り当てるには、Text と EntityReference ノードを含む Attr ノードを作成し、適切なサブツリーをビルドし、setAttributeNode を使用してそれを属性の値に割り当てます。

構文:

public void setAttribute(java.lang.String name, java.lang.String value)
              throws DOMException

パラメータ

name - 作成または変更する属性の名前です。

value - 文字列形式に設定する値です。

例外処理:

DOMException - INVALID_CHARACTER_ERR: 指定した名前に無効な文字が含まれている場合に発生します。

NO_MODIFICATION_ALLOWED_ERR: このノードが読み込み専用の場合に発生します。

setAttributeNode

新しい属性を追加します。指定した名前の属性が要素内にすでにある場合は、新しい属性に置き換えられます。

構文:

public Attr setAttributeNode(Attr newAttr)
           throws DOMException

パラメータ

newAttr - 属性リストに追加する Attr ノードです。

戻り値:

newAttr 属性が同じ名前の既存の属性と置き換えられた場合は、前に存在していた Attr ノードが返されます。それ以外は Null が返されます。

例外処理:

DOMException - WRONG_DOCUMENT_ERR: newAttr が要素を生成した文書と異なる文書から生成された場合に発生します。

NO_MODIFICATION_ALLOWED_ERR: このノードが読み込み専用の場合に発生します。

INUSE_ATTRIBUTE_ERR: newAttr が他の Element オブジェクトの属性である場合に発生します。DOM ユーザーは、Attr ノードを他の要素で再利用するときには、明示的にクローンを生成する必要があります。