次の xml サンプル ドキュメントがあるとします。
<?xml version="1.0"?>
<Brown1>
<Transaction>
<Acct_Id>7801177</Acct_Id>
<Acct_Nm>Name1</Acct_Nm>
<Trans_Num>116902</Trans_Num>
<Trans_Desc>Buy</Trans_Desc>
<Trans_Result>Closed</Trans_Result>
</Transaction>
<Transaction>
<Acct_Id>7801177</Acct_Id>
<Acct_Nm>Name1</Acct_Nm>
<Trans_Num>116903</Trans_Num>
<Trans_Desc>Sell</Trans_Desc>
<Trans_Result>Closed</Trans_Result>
</Transaction>
<Transaction>
<Acct_Id>7801177</Acct_Id>
<Acct_Nm>Name1</Acct_Nm>
<Trans_Num>116904</Trans_Num>
<Trans_Desc>Buy</Trans_Desc>
<Trans_Result>Open</Trans_Result>
</Transaction>
<Transaction>
<Acct_Id>8692031</Acct_Id>
<Acct_Nm>Name2</Acct_Nm>
<Trans_Num>116932</Trans_Num>
<Trans_Desc>Buy</Trans_Desc>
<Trans_Result>Open</Trans_Result>
</Transaction>
<Transaction>
<Acct_Id>8692031</Acct_Id>
<Acct_Nm>Name2</Acct_Nm>
<Trans_Num>116999</Trans_Num>
<Trans_Desc>Sell</Trans_Desc>
<Trans_Result>Closed</Trans_Result>
</Transaction>
</Brown1>
出したいのはこれ
7801177 Name1
116902 Buy Closed
116903 Sell Closed
116904 Buy Open
8692031 Name2
116932 Buy Open
116999 Sell Closed
基本的にアカウントと名前を一度だけ印刷する
テンプレートを次のように設定します。
<xsl:template name="header">
<xsl:value-of select="Acct_Id"/>
<xsl:value-of select="Acct_Nm"/>
<xsl:call-template name="report_data">
</xsl:template>
<xsl:template name="report_data">
<xsl:for-each select=".">
<xsl:value-of select="Trans_Num"/>
<xsl:value-of select="Trans_Desc"/>
<xsl:value-of select="Trans_Result"/>
</xsl:for-each>
</xsl:template>
これにより、毎回Acct_Id
&が生成されます。Acct_Nm
次のノードの処理時にそれらが同じである場合、どうすればそれらを除外できますか?
ヘッダー テンプレートで想定していますが、解決策を得ることができませんでした。
やることは単純に思えますか?...
Acct_Id
をヘッダー テンプレートに保存して次のテンプレートと比較し、Acct_Id
異なる場合のみ印刷することはできますか?