XSLT を使用して XML ファイルを解析し、CSV 形式に変換したいと考えています。XML 形式は次のようになります。
<a:level1>
<a:level2>
<b:level3">
<b:date a:value="TODAY">
<c:level4>
<d:level5>
<d:level6 a:value="AAA">
<d:level7 a:value="AAA_AAA">
<d:level8 a:value="XXX/123">
<d:leaf a:value="150415">
<b:leaf1>100</b:leaf1>
<b:leaf2>100</b:leaf2>
</d:leaf>
<d:leaf a:value="200814">
<b:leaf1>1961</b:leaf1>
<b:leaf2>1961</b:leaf2>
</d:leaf>
</d:level8>
</d:level7>
</d:level6>
<d:level6 a:value="BBB">
<d:level7 a:value="BBB_BBB">
<d:level8 a:value="XXX/123">
<d:leaf a:value="1505">
<b:leaf1>0.42</b:leaf1>
<b:leaf2>0.42</b:leaf2>
</d:leaf>
</d:level8>
</d:level7>
</d:level6>
</d:level5>
</c:level4>
</b:date>
</b:level3>
</a:level2>
</a:level1>
目的は、値を持つノードのみを抽出し、ノード名をヘッダーとして使用することです。出力 CSV ファイルは次のようになります。
date, level6, leve7, level8, leaf, leaf1, leaf2
TODAY, AAA , AAA_AAA, XXX/123, 150415, 100,100
TODAY, AAA , AAA_AAA, XXX/123, 200814, 1961,1961
TODAY, BBB , BBB_BBB, XXX/123, 1505, 0.42,0.42
私は XSLT の初心者なので、CSV のヘッダーと行を作成する方法のサンプルはありますか? ノード level6、level7、level8、leaf の名前は、異なるファイルで変更される場合があります。