それで、ここ数日間私を悩ませてきた問題があります。かなり簡単なはずですが、XSLTはデバッグするのがとても面倒です。Java1.6でXalan1.0を使用しています
入力XML
<?xml version="1.0" encoding="UTF-8"?>
<rfb2>
<rfb2_item>
<VALDATE>2011-10-23</VALDATE>
<FUND_ID>300</FUND_ID>
<SEC_ID>34567</SEC_ID>
</rfb2_item>
<rfb2_item>
<VALDATE>2011-1-09</VALDATE>
<FUND_ID>700</FUND_ID>
<SEC_ID>13587</SEC_ID>
</rfb2_item>
<rfb2_item>
<VALDATE>2011-3-09</VALDATE>
<FUND_ID>200</FUND_ID>
<SEC_ID>999334</SEC_ID>
</rfb2_item>
<rfb2>
XMLを各rfb2_itemの値のコンマ区切りリストに変換する必要があるため、スタイルシートは常にrfb2_itemノードを繰り返します。スタイルシートのパラメーターを使用して、出力されるrfb2_item(valdate、fund_id、sec_id)の要素とその順序を制御しています。
<xsl:param name="$outputElements" select="'VALDATE,FUND_ID'"/>
..outputs...
2011-10-23,300
2011-1-09,700
2011-3-09,200
<xsl:param name="$outputElements" select="'SEC_ID'"/>
..outputs...
34567
13587
999334
$outputElementsが'*'の場合、入力xmlに表示される順序で要素を出力するだけの特殊なケース
<xsl:param name="$outputElements" select="'*'"/>
..outputs...
2011-10-23,300,34567
2011-1-09,700,13587
2011-3-09,200,999334
だから、私の質問は、$outputElementsパラメーターに基づいて目的の出力を作成するためのテンプレートをどのように作成するかです。実用的な例は素晴らしいでしょう...