SEWB+/CONSTRUCTION アプリケーション開発ガイド

[目次][用語][索引][前へ][次へ]

7.8.3 XML文書の参照方法

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

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

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

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

(例)可変記号 @XmlDocにルートノードを設定する。
@@interface @XmlDoc = {ATTR=XML};

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

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

ノードの種類 添字に指定するキーワード
Type Name Value
要素ノード 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文書の木構造をたどる」の表の項番と対応しています。

[図データ]