Skip to main content
Skip table of contents

部屋リスト

ファイル名:Room list.xfd
レベル:Medium
レポートから XML:Room -> Room list -> With area sums
XMLサンプルファイル:xml/rooms.xml
キーコンセプト:Repeating table, key/index

これは全部屋のシンプルなリストです。
これは、drofus-xml/room-containerのデータソースペイン(3)から<room> XMLノードをドキュメント(Global XSLT window) にドラッグするだけで、
作成された部屋の繰り返しテーブル(3.6参照)を持っています。

このレポートの "hard" な部分は、この部屋が置かれているトップ機能名 (デパートメント/部門)を示す3列目です。
この列のヘッダ・フィールドは、この機能レベルの説明を含む top <level>/トップ <レベル> 属性の説明を使用します。これは以下の式を使用します。

/drofus-xml/level[1]/@description

これは単純にドキュメントの最初のレベルのノードに行き、@description属性を取得します。

列の内容を取得するには、機能的な構造を表す<level>階層を見る必要があります。この場合、<room-container>と同じ部屋はすべて見つかりますが、
room-container/room/@id属性を参照する@ref属性を持つ部屋のみが見つかります。この部屋を参照できるようにするには、インデックスが必要です。
これを作成するには、Review (レビュー)->Global XSLT window (Global XSLTウィンドウ) に以下のコードを貼り付けます。

<xsl:key match="room" name="room-ref-key" use="@ref"/>

これにより、ref属性に基づいてすべての<room>ノードのインデックスが作成されます。これを利用して、現在処理中の部屋と同じ部屋を検索することができます。

key('room-ref-key', @id)

この部屋の上のトップレベルも必要なので、フィールドの完全な式は次のようになります:

key('room-ref-key',@id)/ancestor::level[last()]/@name

これは、レベルツリーで部屋を検索し、その上にあるすべてのレベルノードを取得し、最後のノードを選んでname属性を取得します。


JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.