私は現在、要素に同じ一致する複数の xsl:template を適用することに固執しています。以下の例は、問題を示しています。
2 つの「テンプレート マッチ」を使用して期待される出力を作成する XSL テンプレートを知っている人はいますか? 技術的な理由により、2 つの「テンプレート」要素を一緒に配置することはできません。
入力
<root>
<elem>123.45</elem>
<elem>789.12</elem>
</root>
XSLT
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:decimal-format name="de" decimal-separator="," grouping-separator="."/>
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="/root/elem">
<xsl:element name="renamed">
<xsl:apply-templates select="@* | node()"/>
</xsl:element>
</xsl:template>
<xsl:template match="/root/elem">
<xsl:element name="elem">
<xsl:value-of select="format-number(.,'#.##0,0000','de')" />
</xsl:element>
</xsl:template>
</xsl:stylesheet>
出力:
<root>
<elem>123,4500</elem>
<elem>789,1200</elem>
</root>
期待される出力:
<root>
<renamed>123,4500</renamed>
<renamed>789,1200</renamed>
</root>