###
13.6.2.2 Node オブジェクト

XML 文書の全ての構成要素は `Node` のサブクラスです。

`nodeType`
  ノード (node) の型を表現する整数値です。型に対応する以下の シンボル定数: `ELEMENT_NODE` 、 `ATTRIBUTE_NODE` 、 `TEXT_NODE` 、 `CDATA_SECTION_NODE` 、 `ENTITY_NODE` 、 `PROCESSING_INSTRUCTION_NODE` 、 `COMMENT_NODE` 、 `DOCUMENT_NODE` 、 `DOCUMENT_TYPE_NODE` 、 `NOTATION_NODE` 、 が `Node` オブジェクトで定義されています。 読み出し専用の属性です。

`parentNode`
  現在のノードの親ノードか、文書ノードの場合には `None` になります。この値は常に `Node` オブジェクトか `None` になります。`Element` ノードの場合、この値はルート要素 (root element) の場合を除き親要素 (parent element) となり、 ルート要素の場合には `Document` オブジェクトとなります。 `Attr` ノードの場合、この値は常に `None` となります。 読み出し専用の属性です。

`attributes`
  属性オブジェクトの `NamedNodeMap` です。要素だけがこの属性に 実際の値を持ちます; その他のオブジェクトでは、この属性を `None` にします。 読み出し専用の属性です。

`previousSibling`
  このノードと同じ親ノードを持ち、直前にくるノードです。例えば、 self 要素のの開始タグの直前にくる終了タグを持つ要素です。 もちろん、XML 文書は要素だけで構成されているだけではないので、 直前にくる兄弟関係にある要素 (sibling) はテキストやコメント、 その他になる可能性があります。このノードが親ノードにおける 先頭の子ノードである場合、属性値は `None` になります。 読み出し専用の属性です。

`nextSibling`
  このノードと同じ親ノードを持ち、直後にくるノードです。例えば、 `previousSibling` も参照してください。 このノードが親ノードにおける末尾頭の子ノードである場合、 属性値は `None` になります。 読み出し専用の属性です。

`childNodes`
  このノード内に収められているノードからなるリストです。 読み出し専用の属性です。

`firstChild`
  このノードに子ノードがある場合、その先頭のノードです。 そうでない場合 `None` になります。 読み出し専用の属性です。

`lastChild`
  このノードに子ノードがある場合、その末尾のノードです。 そうでない場合 `None` になります。 読み出し専用の属性です。

`localName`
  `tagName` にコロンがあれば、コロン以降の部分に、なければ `tagName` 全体になります。値は文字列です。

`prefix`
  `tagName` のコロンがあれば、コロン以前の部分に、なければ 空文字列になります。値は文字列か、`None` になります。

`namespaceURI`
  要素名に関連付けられた名前空間です。文字列か `None` に なります。読み出し専用の属性です。

`nodeName`
  この属性はノード型ごとに異なる意味を持ちます; 詳しくは DOM 仕様を 参照してください。この属性で得られることになる情報は、全てのノード 型では `tagName` 、属性では `name` プロパティといった ように、常に他のプロパティで得ることができます。全てのノード型で、 この属性の値は文字列か `None` になります。 読み出し専用の属性です。

`nodeValue`
  この属性はノード型ごとに異なる意味を持ちます; 詳しくは DOM 仕様を 参照してください。その序今日は `nodeName` と似ています。 この属性の値は文字列か `None` になります。

`hasAttributes`( | )

  ノードが何らかの属性を持っている場合に真を返します。

`hasChildNodes`( | )

  ノードが何らかの子ノードを持っている場合に真を返します。

`isSameNode`( | other)

  other がこのノードと同じノードを参照している場合に真を返します。 このメソッドは、何らかのプロキシ (proxy) 機構を利用するような DOM 実装で特に便利です (一つ以上のオブジェクトが同じノードを参照 するかもしれないからです)。

  注意: このメソッドは DOM レベル 3 API で提案されており、まだ ``ワーキングドラフト(working draft)'' の段階です。しかし、 このインタフェースだけは議論にはならないと考えられます。 W3C による変更は必ずしも Python DOM インタフェースにおける このメソッドに影響するとは限りません (ただしこのメソッドに 対する何らかの新たな W3C API もサポートされるかもしれません)。

`appendChild`( | newChild)

  現在のノードの子ノードリストの末尾に新たな子ノードを追加し、 newChild を返します。

`insertBefore`( | newChild, refChild)

  新たな子ノードを既存の子ノードの前に挿入します。refChild は現在のノードの子ノードである場合に限られます; そうでない場合、 `ValueError` が送出されます。 newChild が返されます。

`removeChild`( | oldChild)

  子ノードを削除します。oldChild はこのノードの子ノードでなければ なりません。そうでない場合、`ValueError` が送出されます。 成功した場合 oldChild が返されます。 oldChild をそれ以降使わない場合、`unlink()` メソッドを 呼び出さなければなりません。

`replaceChild`( | newChild, oldChild)

  既存のノードと新たなノードを置き換えます。この操作は oldChild が現在のノードの子ノードである場合に限られます; そうでない場合、 `ValueError` が送出されます。

`normalize`( | )

  一続きのテキスト全体を一個の `Text` インスタンスとして保存する ために隣接するテキストノードを結合します。これにより、多くの アプリケーションで DOM ツリーからのテキスト処理が簡単になります。 バージョン2.1 以降で新規追加された 仕様です。

`cloneNode`( | deep)

  このノードを複製 (clone) します。deep を設定すると、子ノードも 同様に複製することを意味します。複製されたノードを返します。