XML > XPath > ノード(node)
ノード(node)
要素や属性など、XML 文章を構成している単位をノード(node)という。
データモデル
ノードは単一のルートノードを頂点とするツリー構造になる。
ルートノードは XML 文章のルート要素のさらに上位に位置する仮想的なルート。
(例のXML)
<?xml version="1.0" encoding="Shift_JIS" ?> <?xml-stylesheet type="text/xsl" href="doc.xsl" ?> <基本設計書 システム名="○○システム"> <章 番号="0"> <タイトル>表紙</タイトル> <ページ番号>1</ページ番号> </章> <章 番号="1"> <タイトル>システム概要</タイトル> <ページ番号>2</ページ番号> </章> <章 番号="2"> <タイトル>機能一覧</タイトル> <ページ番号>4</ページ番号> </章> <章 番号="3"> <タイトル>画面遷移</タイトル> <ページ番号>6</ページ番号> </章> <章 番号="4"> <タイトル>画面イメージ</タイトル> <ページ番号>10</ページ番号> </章> </基本設計書> |
(例のモデル)

ルートノード=ルート要素ではないので注意する。
ノードの種類
ノードは以下の種類に分類される。
ノードの種類 | 概要 | 親 | 子 |
---|---|---|---|
ルートノード | ツリー構造の頂点 最上位ノード | なし | 要素ノード コメントノード 処理命令ノード |
要素ノード | 要素 | ルートノード 要素ノード | 要素ノード テキストノード コメントノード 処理命令ノード |
属性ノード | 属性 | 要素ノード | なし |
テキストノード | 要素内容 | 要素ノード | なし |
コメントノード | コメント ドキュメント型宣言内に記述するコメントを除く | 要素ノード | なし |
名前空間ノード | 名前空間 | 要素ノード | なし |
処理命令ノード | 処理命令 | 要素ノード | なし |
親子関係
ノードツリーの中で自分の1つ上にあるノードを親ノード、
自分の1つ下にあるノードを子ノードという。
ただし、上記表にもあるように、
属性ノードの親ノードとして要素ノードがあるが、
要素ノードの子ノードとして属性ノードはないので注意する。
(例) <章 番号="0"> の場合 属性ノード「番号」の親ノードは、要素ノード「章」であるが、 要素ノード「章」の子ノードには、属性ノード「番号」は含まれない |
兄弟関係
自分と同じ親を持つノードを兄弟ノードと言う。
一般的に先に記述されているノードを兄ノード、
後に記述されているノードを弟ノードという。
本ページの上部にある例でいうと、それぞれの関係は以下のようになる。
親子関係
・章はタイトルの親ノード
・タイトルは章の子ノード
・章は基本設計書の子ノード
・基本設計書は章の親ノード
兄弟関係
・タイトルはページ番号の兄ノード
・ページ番号はタイトルの弟ノード