タイトル
TOP → This Page

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">
の場合
属性ノード「番号」の親ノードは、要素ノード「章」であるが、
要素ノード「章」の子ノードには、属性ノード「番号」は含まれない


兄弟関係


自分と同じ親を持つノードを兄弟ノードと言う。
一般的に先に記述されているノードを兄ノード、
後に記述されているノードを弟ノードという。

本ページの上部にある例でいうと、それぞれの関係は以下のようになる。

親子関係
・章はタイトルの親ノード
・タイトルは章の子ノード
・章は基本設計書の子ノード
・基本設計書は章の親ノード

兄弟関係
・タイトルはページ番号の兄ノード
・ページ番号はタイトルの弟ノード


TOP → This Page