7.8.3 XML文書の参照方法

テンプレートでXML文書を参照する方法を説明します。

<この項の構成>
(1) ルートノードの設定
(2) ノードの内容の参照
(3) XML文書の木構造をたどる

(1) ルートノードの設定

テンプレートでXML文書を参照する場合,必ずルートノードから参照を始めることになります。テンプレートではATTR=XMLを指定した@@interface文の可変記号に,ルートノードが設定されます。

(例)可変記号 @XmlDocにルートノードを設定する。

@@interface @XmlDoc = {ATTR=XML};

(2) ノードの内容の参照

可変記号に設定されたノードの内容は,可変記号に添字を指定して参照します。ノードの種類によっては参照される情報が異なります。なお,ノードの種類はキーワードのTypeで判断できます。

ノードの種類添字に指定するキーワード
TypeNameValue
要素ノード21タグ名2長さが0の文字列が設定される。
属性ノード31属性名2属性値2
テキストノード61#text1テキスト2

注※1

固有の値が参照されます。

注※2XML文書で指定された値が参照されます。

(例)ルートタグ名をメッセージウィンドウに表示する。
@@interface @XmlDoc = {ATTR=XML};
@@msg "ルートのタグ名は @XmlDoc[NAME] です。";

(3) XML文書の木構造をたどる

XML関数を使用すると,木構造をたどって目的のノード情報を参照できます。

項番関数名機能取得されるノード
要素テキスト属性
1@@xmlparent
(可変記号)
親ノード情報を取得する。××
2@@xmlchildnodes
(可変記号)
すべての子供ノードの情報を取得する。
この関数は複数のノードを配列で返す。
×
3@@xmlfirstchild
(可変記号)
先頭の子供のノード情報を取得する。×
4@@xmllastchild
(可変記号)
最後の子供ノード情報を取得する。×
5@@xmlprevious
(可変記号)
同じ親を持つ直前のノード情報を取得する。×
6@@xmlnext
(可変記号)
同じ親を持つ直後のノード情報を取得する。×
7@@xmlelements
(可変記号,"タグ名")
指定されたタグ名を持つ下位のすべての要素ノードの情報を取得する。この関数は,複数のノードを配列で返す。タグ名に'*'を指定した場合,すべての要素ノードを返す。××
8@@xmlattribute
(可変記号,"属性名")
指定された属性名を持つ属性ノード情報を取得する。属性名に'*'は指定できない。××
(凡例)
○:取得できる。
×:取得できない。

これらの関数を展開したとき,「基準となるノード」を起点にして,どのように木構造が検索されて,ノード情報が取得されるかを次の図に示します。

なお,図中の番号は「(3) XML文書の木構造をたどる」の表の項番と対応しています。

[図データ]