Common DOM API

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

既知のサブインタフェースの一覧:
Attr, CDATASection, CharacterData, Comment, Document, DocumentFragment, DocumentType, Element, Entity, EntityReference, HTMLAnchorElement, HTMLAppletElement, HTMLAreaElement, HTMLBaseElement, HTMLBaseFontElement, HTMLBodyElement, HTMLBRElement, HTMLButtonElement, HTMLDirectoryElement, HTMLDivElement, HTMLDListElement, HTMLDocument, HTMLElement, HTMLFieldSetElement, HTMLFontElement, HTMLFormElement, HTMLFrameElement, HTMLFrameSetElement, HTMLHeadElement, HTMLHeadingElement, HTMLHRElement, HTMLHtmlElement, HTMLIFrameElement, HTMLImageElement, HTMLInputElement, HTMLIsIndexElement, HTMLLabelElement, HTMLLegendElement, HTMLLIElement, HTMLLinkElement, HTMLMapElement, HTMLMenuElement, HTMLMetaElement, HTMLModElement, HTMLObjectElement, HTMLOListElement, HTMLOptGroupElement, HTMLOptionElement, HTMLParagraphElement, HTMLParamElement, HTMLPreElement, HTMLQuoteElement, HTMLScriptElement, HTMLSelectElement, HTMLStyleElement, HTMLTableCaptionElement, HTMLTableCellElement, HTMLTableColElement, HTMLTableElement, HTMLTableRowElement, HTMLTableSectionElement, HTMLTextAreaElement, HTMLTitleElement, HTMLUListElement, Notation, ProcessingInstruction, Text

public interface Node

Node インタフェースは Document Object Model 全体の主要なデータ型です。これはドキュメントツリーの単一のノードを表します。Node インタフェースを実装するすべてのオブジェクトは子を扱うメソッドを公開しますが、Node インタフェースを実装するすべてのオブジェクトが、子を持つわけではありません。たとえば、Text ノードは子を持ちませんが、このノードに子を追加すると DOMException が発行されます。

属性 nodeNamenodeValueattributes は、特定の派生インタフェースに投げ出すことなく、ノード情報を取得する機構として含まれます。特定の nodeType (たとえば、ElementnodeValue、または Commentattributes など) に対して、これらの属性の明確なマッピングがない場合は、これは null を返します。専門化されたインタフェースには、関連する情報を取得して設定するための、より詳細でより便利な機構があります。

nodeNamenodeValue、および attributes の値は、以下のようにノード型に応じて異なります。
インタフェース nodeName nodeValue attributes
Attr 属性名 属性値 null
CDATASection #cdata-section CDATA セクションの内容 null
Comment #comment コメントの内容 null
Document #document null null
DocumentFragment #document-fragment null null
DocumentType ドキュメント型の名前 null null
Element タグ名 null NamedNodeMap
Entity エンティティ名 null null
EntityReference 参照されるエンティティの名前 null null
Notation 表記法の名前 null null
ProcessingInstruction ターゲット ターゲット以外の内容全体 null
Text #text テキストノードの内容 null

詳細については、 「Document Object Model (DOM) Level 2 Core Specification」 も参照してください。


フィールドの概要
static short ATTRIBUTE_NODE
          ノードは Attr です。
static short CDATA_SECTION_NODE
          ノードは CDATASection です。
static short COMMENT_NODE
          ノードは Comment です。
static short DOCUMENT_FRAGMENT_NODE
          ノードは DocumentFragment です。
static short DOCUMENT_NODE
          ノードは Document です。
static short DOCUMENT_TYPE_NODE
          ノードは DocumentType です。
static short ELEMENT_NODE
          ノードは Element です。
static short ENTITY_NODE
          ノードは Entity です。
static short ENTITY_REFERENCE_NODE
          ノードは EntityReference です。
static short NOTATION_NODE
          ノードは Notation です。
static short PROCESSING_INSTRUCTION_NODE
          ノードは ProcessingInstruction です。
static short TEXT_NODE
          ノードは Text ノードです。
 
メソッドの概要
 Node appendChild(Node newChild)
          このノードの子リストの末尾に newChild ノードを追加します。
 Node cloneNode(boolean deep)
          このノードのコピーを返します。
 NamedNodeMap getAttributes()
          このノードが Element の場合はその属性を含む NamedNodeMap、そうでない場合は null
 NodeList getChildNodes()
          このノードのすべての子を含む NodeList
 Node getFirstChild()
          このノードの最初の子。
 Node getLastChild()
          このノードの最後の子。
 String getLocalName()
          このノードの修飾名からローカル名を抽出して返します。
 String getNamespaceURI()
          このノードに名前空間 URI が指定されている場合はその URI、そうでない場合は null を返します。
 Node getNextSibling()
          このノードの直後のノード。
 String getNodeName()
          このノードの名前はその型によって決まります。
 short getNodeType()
          基盤となるオブジェクトの型を表すコードです (上記の定義を参照)。
 String getNodeValue()
          このノードの値はその型によって決まります。
 Document getOwnerDocument()
          このノードに関連付けられた Document
 Node getParentNode()
          このノードの親。
 String getPrefix()
          このノードの名前空間接頭辞が指定されている場合はその接頭辞、そうでない場合は null
 Node getPreviousSibling()
          このノードの直前のノード。
 boolean hasAttributes()
          このノード (要素の場合) が属性を持っているかどうかを返します。
 boolean hasChildNodes()
          このノードが子を持っているかどうかを返します。
 Node insertBefore(Node newChild, Node refChild)
          ノード newChild を既存の子ノード refChild の直前に挿入します。
 boolean isSupported(String feature, String version)
          DOM 実装が指定された機能を実装しているか、またその機能がこのノードによりサポートされているかどうかをテストします。
 void normalize()
          属性ノードを含む Node の下にあるサブツリーの最も深い所にあるすべての Text ノードを、構造 (たとえば、要素、コメント、処理命令、CDATA セクション、エンティティ参照など) だけが Text ノードを分離する「標準」形式 (つまり,隣接する Text ノードも空の Text ノードもない形式) に変更します。
 Node removeChild(Node oldChild)
          子リストから oldChild で指定された子ノードを削除し、それを返します。
 Node replaceChild(Node newChild, Node oldChild)
          子リスト内の子ノード oldChildnewChild で置き換え、oldChild ノードを返します。
 void setNodeValue(String nodeValue)
          このノードの値はその型によって決まります。
 void setPrefix(String prefix)
          このノードの名前空間接頭辞が指定されている場合はその接頭辞、そうでない場合は null
 

フィールドの詳細

ELEMENT_NODE

public static final short ELEMENT_NODE
ノードは Element です。

関連項目:
定数フィールド値

ATTRIBUTE_NODE

public static final short ATTRIBUTE_NODE
ノードは Attr です。

関連項目:
定数フィールド値

TEXT_NODE

public static final short TEXT_NODE
ノードは Text ノードです。

関連項目:
定数フィールド値

CDATA_SECTION_NODE

public static final short CDATA_SECTION_NODE
ノードは CDATASection です。

関連項目:
定数フィールド値

ENTITY_REFERENCE_NODE

public static final short ENTITY_REFERENCE_NODE
ノードは EntityReference です。

関連項目:
定数フィールド値

ENTITY_NODE

public static final short ENTITY_NODE
ノードは Entity です。

関連項目:
定数フィールド値

PROCESSING_INSTRUCTION_NODE

public static final short PROCESSING_INSTRUCTION_NODE
ノードは ProcessingInstruction です。

関連項目:
定数フィールド値

COMMENT_NODE

public static final short COMMENT_NODE
ノードは Comment です。

関連項目:
定数フィールド値

DOCUMENT_NODE

public static final short DOCUMENT_NODE
ノードは Document です。

関連項目:
定数フィールド値

DOCUMENT_TYPE_NODE

public static final short DOCUMENT_TYPE_NODE
ノードは DocumentType です。

関連項目:
定数フィールド値

DOCUMENT_FRAGMENT_NODE

public static final short DOCUMENT_FRAGMENT_NODE
ノードは DocumentFragment です。

関連項目:
定数フィールド値

NOTATION_NODE

public static final short NOTATION_NODE
ノードは Notation です。

関連項目:
定数フィールド値
メソッドの詳細

getNodeName

public String getNodeName()
このノードの名前はその型によって決まります。上記の表を参照してください。


getNodeValue

public String getNodeValue()
                    throws DOMException
このノードの値はその型によって決まります。上記の表を参照してください。ノードが null であると定義されている場合、値を設定しても無視されます。

例外:
DOMException - NO_MODIFICATION_ALLOWED_ERR: ノードが読み取り専用の場合に発行される
DOMException - DOMSTRING_SIZE_ERR: 実装プラットフォームの DOMString 変数に適合しない多数の文字型を返すときに発生する

setNodeValue

public void setNodeValue(String nodeValue)
                  throws DOMException
このノードの値はその型によって決まります。上記の表を参照してください。ノードが null であると定義されている場合、値を設定しても無視されます。

例外:
DOMException - NO_MODIFICATION_ALLOWED_ERR: ノードが読み取り専用の場合に発行される
DOMException - DOMSTRING_SIZE_ERR: 実装プラットフォームの DOMString 変数に適合しない多数の文字型を返すときに発生する

getNodeType

public short getNodeType()
基盤となるオブジェクトの型を表すコードです (上記の定義を参照)。


getParentNode

public Node getParentNode()
このノードの親。AttrDocumentDocumentFragmentEntity、および Notation 以外のすべてのノードは親を持ちます。ただし、ノードが作成されたばかりで、まだツリーに追加されない場合、またはツリーから削除された場合は、このノードは null です。


getChildNodes

public NodeList getChildNodes()
このノードのすべての子を含む NodeList。子がない場合は、これはノードをまったく含まない NodeList になります。


getFirstChild

public Node getFirstChild()
このノードの最初の子。このようなノードがない場合、これは null を返します。


getLastChild

public Node getLastChild()
このノードの最後の子。このようなノードがない場合、これは null を返します。


getPreviousSibling

public Node getPreviousSibling()
このノードの直前のノード。このようなノードがない場合、これは null を返します。


getNextSibling

public Node getNextSibling()
このノードの直後のノード。このようなノードがない場合、これは null を返します。


getAttributes

public NamedNodeMap getAttributes()
このノードが Element の場合はその属性を含む NamedNodeMap、そうでない場合は null


getOwnerDocument

public Document getOwnerDocument()
このノードに関連付けられた Document。また、これは新しいノードの作成に使用される Document オブジェクトです。このノードが Document または、Document によりまだ使用されていない DocumentType の場合、これは null です。


insertBefore

public Node insertBefore(Node newChild,
                         Node refChild)
                  throws DOMException
ノード newChild を既存の子ノード refChild の直前に挿入します。refChildnull の場合、子ノードのリストの末尾に newChild を挿入します。
newChildDocumentFragment オブジェクトの場合、その子ノードのすべてを元の順番どおりに、refChild の直前に挿入します。newChild がすでにツリー内に存在する場合、その子をまず削除します。

パラメータ:
newChild - 挿入するノード
refChild - 参照ノード。このノードの直前に新しいノードが挿入される
戻り値:
挿入されたノード
例外:
DOMException - HIERARCHY_REQUEST_ERR: このノードが newChild ノード型の子を持てない型である場合、またはこのノードの祖先やこのノード自身が挿入ノードとして指定された場合に発行される
WRONG_DOCUMENT_ERR: newChild を作成したドキュメントとこのノードを作成したドキュメントが異なる場合に発行される
NO_MODIFICATION_ALLOWED_ERR: このノードが読み取り専用であるか、挿入されるノードの親が読み取り専用である場合に発行される
NOT_FOUND_ERR: refChild がこのノードの子でない場合に発行される

replaceChild

public Node replaceChild(Node newChild,
                         Node oldChild)
                  throws DOMException
子リスト内の子ノード oldChildnewChild で置き換え、oldChild ノードを返します。
newChildDocumentFragment オブジェクトの場合、oldChildDocumentFragment のすべての子で置き換えますが、その際の子の順番は元のとおりになります。newChild がすでにツリー内に存在する場合、その子をまず削除します。

パラメータ:
newChild - 子リストに挿入する新しいノード
oldChild - リスト内の置き換えられるノード
戻り値:
置き換えられたノード
例外:
DOMException - HIERARCHY_REQUEST_ERR: このノードが newChild ノード型の子を持てない型である場合、またはこのノードの祖先やこのノード自身が新しいノードとして指定された場合に発行される
WRONG_DOCUMENT_ERR: newChild を作成したドキュメントとこのノードを作成したドキュメントが異なる場合に発行される
NO_MODIFICATION_ALLOWED_ERR: このノードが読み取り専用であるか、新しいノードの親が読み取り専用である場合に発行される
NOT_FOUND_ERR: oldChild がこのノードの子でない場合に発行される

removeChild

public Node removeChild(Node oldChild)
                 throws DOMException
子リストから oldChild で指定された子ノードを削除し、それを返します。

パラメータ:
oldChild - 削除するノード
戻り値:
削除されたノード
例外:
DOMException - NO_MODIFICATION_ALLOWED_ERR: このノードが読み取り専用の場合に発行される.
NOT_FOUND_ERR: oldChild がそのノードの子でない場合に発行される

appendChild

public Node appendChild(Node newChild)
                 throws DOMException
このノードの子リストの末尾に newChild ノードを追加します。newChild がすでにツリーにある場合、それをまず削除します。

パラメータ:
newChild - 追加するノード。このノードが DocumentFragment の場合、その内容全体を子リストに移動する
戻り値:
追加されたノード
例外:
DOMException - HIERARCHY_REQUEST_ERR: このノードが newChild ノード型の子を持てない型である場合、またはこのノードの祖先やこのノード自身が挿入ノードとして指定された場合に発行される
WRONG_DOCUMENT_ERR: newChild を作成したドキュメントとこのノードを作成したドキュメントが異なる場合に発行される
NO_MODIFICATION_ALLOWED_ERR: このノードが読み取り専用であるか、挿入されるノードの元の親が読み取り専用である場合に発行される

hasChildNodes

public boolean hasChildNodes()
このノードが子を持っているかどうかを返します。

戻り値:
このノードが子を持っている場合は true、そうでない場合は false

cloneNode

public Node cloneNode(boolean deep)
このノードのコピーを返します。つまり、このメソッドはノードをコピーするための汎用的なコンストラクタとして機能します。コピーされたノードは親を持ちません。つまり、parentNodenull が設定されます。
Element をコピーする場合、XML プロセッサによって自動生成されたデフォルトの属性も含め、すべての属性とその値がいっしょにコピーされますが、その要素に含まれているテキストがコピーされるのは、deep パラメータが指定された場合だけです。というのも、要素のテキストは子である Text ノード内に格納されるからです。Attribute のコピーを、Element のコピー処理の一環としてではなく個別に行う場合、指定属性が返されます。つまり、specifiedtrue が設定されます。その他のノード型をコピーする場合、このノードの単純コピーが返されます。
不変サブツリーをコピーする場合、可変コピーが返されますが、コピーされた EntityReference の子は読み取り専用になりますので注意してください。さらに、指定 Attr ノードのコピーはやはり指定属性になります。そのほか、DocumentDocumentTypeEntity、および Notation の各ノードのコピーは実装に依存します。

パラメータ:
deep - true の場合、指定されたノードにあるサブツリーを再帰的にコピーする。false の場合、ノード自身 (および Element の場合はその属性) だけをコピーする
戻り値:
コピーされたノード

normalize

public void normalize()
属性ノードを含む Node の下にあるサブツリーの最も深い所にあるすべての Text ノードを、構造 (たとえば、要素、コメント、処理命令、CDATA セクション、エンティティ参照など) だけが Text ノードを分離する「標準」形式 (つまり,隣接する Text ノードも空の Text ノードもない形式) に変更します。これは、ドキュメントの DOM 表示が、あたかも保存されて再ロードされたときと同じようにするために使用されます。また、特殊なドキュメントツリー構造に依存するオペレーション (XPointer 検索など) を行うときに役立ちます。 ドキュメントが CDATASections を含む場合には、Xpointer は Text ノードと CDATASection ノードを区別しないので、標準のオペレーションだけでは不十分です。


isSupported

public boolean isSupported(String feature,
                           String version)
DOM 実装が指定された機能を実装しているか、またその機能がこのノードによりサポートされているかどうかをテストします。

パラメータ:
feature - テストする機能の名前。この名前は、DOMImplementationhasFeature メソッドに指定する名前と同じである
version - テストする機能のバージョン番号。Level 2、バージョン 1 では文字列「2.0」である。バージョンが指定されなかった場合、指定された機能の少なくとも 1 つのバージョンがサポートされていれば、このメソッドの戻り値は true になる
戻り値:
指定された機能がこのノードでサポートされている場合は true、そうでない場合は false
導入されたバージョン:
DOM Level 2

getNamespaceURI

public String getNamespaceURI()
このノードに名前空間 URI が指定されている場合はその URI、そうでない場合は null を返します。
ただしこの戻り値は、スコープ内の名前空間宣言を検索した結果得られた名前空間 URI ではなく、作成時に指定された URI です。
ELEMENT_NODEATTRIBUTE_NODE 以外の型を持つノード、および Document インタフェースの createElement などのような DOM Level 1 のメソッドを使って作成されたノードでは、戻り値は常に null になります。Namespaces in XML 仕様によれば、属性は所属する要素の名前空間を継承しません。よって、名前空間が明示的に指定されない限り、属性が名前空間を持つことはありません。

導入されたバージョン:
DOM Level 2

getPrefix

public String getPrefix()
このノードの名前空間接頭辞が指定されている場合はその接頭辞、そうでない場合は null
この属性の設定が許可されているノードの場合、値を設定すると、修飾名を保持する nodeName 属性も同時に変更されます。また、ノードが ElementAttr の場合は、tagName 属性や name 属性も変更されます。
なお、デフォルト値を持つ属性の接頭辞を変更しても namespaceURIlocalName は変わらないため、デフォルト値と元の接頭辞を持つ新しい属性が生成されることはありません。
ELEMENT_NODEATTRIBUTE_NODE 以外の型を持つノード、および Document インタフェースの createElement などのような DOM Level 1 のメソッドを使って作成されたノードでは、戻り値は常に null になります。

例外:
DOMException - INVALID_CHARACTER_ERR: 指定された接頭辞に XML 1.0 仕様に準拠しない不正な文字が含まれている場合に発行される
NO_MODIFICATION_ALLOWED_ERR: このノードが読み取り専用の場合に発行される
NAMESPACE_ERR: 指定された prefix の形式が Namespaces in XML 仕様に準拠していない場合、このノードの namespaceURInull である場合、指定された接頭辞が「xml」であるのにこのノードの namespaceURI が「http://www.w3.org/XML/1998/namespace」でない場合、このノードが属性で指定された接頭辞が「xmlns」であるのにこのノードの namespaceURI が「http://www.w3.org/2000/xmlns/」でない場合、またはこのノードが属性で qualifiedName が「xmlns」である場合に発行される
導入されたバージョン:
DOM Level 2

setPrefix

public void setPrefix(String prefix)
               throws DOMException
このノードの名前空間接頭辞が指定されている場合はその接頭辞、そうでない場合は null
この属性の設定が許可されているノードの場合、値を設定すると、修飾名を保持する nodeName 属性も同時に変更されます。また、ノードが ElementAttr の場合は、tagName 属性や name 属性も変更されます。
なお、デフォルト値を持つ属性の接頭辞を変更しても namespaceURIlocalName は変わらないため、デフォルト値と元の接頭辞を持つ新しい属性が生成されることはありません。
ELEMENT_NODEATTRIBUTE_NODE 以外の型を持つノード、および Document インタフェースの createElement などのような DOM Level 1 のメソッドを使って作成されたノードでは、戻り値は常に null になります。

例外:
DOMException - INVALID_CHARACTER_ERR: 指定された接頭辞に XML 1.0 仕様に準拠しない不正な文字が含まれている場合に発行される
NO_MODIFICATION_ALLOWED_ERR: このノードが読み取り専用の場合に発行される
NAMESPACE_ERR: 指定された prefix の形式が Namespaces in XML 仕様に準拠していない場合、このノードの namespaceURInull である場合、指定された接頭辞が「xml」であるのにこのノードの namespaceURI が「http://www.w3.org/XML/1998/namespace」でない場合、このノードが属性で指定された接頭辞が「xmlns」であるのにこのノードの namespaceURI が「http://www.w3.org/2000/xmlns/」でない場合、またはこのノードが属性で qualifiedName が「xmlns」である場合に発行される
導入されたバージョン:
DOM Level 2

getLocalName

public String getLocalName()
このノードの修飾名からローカル名を抽出して返します。ELEMENT_NODEATTRIBUTE_NODE 以外の型を持つノード、および Document インタフェースの createElement などのような DOM Level 1 のメソッドを使って作成されたノードでは、戻り値は常に null になります。

導入されたバージョン:
DOM Level 2

hasAttributes

public boolean hasAttributes()
このノード (要素の場合) が属性を持っているかどうかを返します。

戻り値:
このノードが属性を持っている場合は true、そうでない場合は false
導入されたバージョン:
DOM Level 2

Common DOM API

バグや機能要求の報告
Java は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.