HTMLに変換するXML文書があります。省略したい不要な属性が多いですが、キャプチャしたい属性は以下のように2つあります。
源泉
<element att1="yes" att2="no" att3="yes">Text</element>
希望の出力
<span class="att1">Text</span>
したがって、att1
またはがatt2
「はい」の場合、その属性名を使用してクラス属性が生成され、他のすべての属性は省略され、要素は範囲に変換されます。
ソース文書とatt1
はatt2
相互に排他的でなければなりません。一方が「はい」と答えた場合、もう一方は存在する場合もあれば存在しない場合もあります。
答え1
以下は1つのアプローチです(XSLT 2.0+)。
<xsl:template match="element[(@att1, @att2)='yes']">
<span class="{name((@att1, @att2)[.='yes'][1])}">
<xsl:value-of select="."/>
</span>
</xsl:template>
<xsl:template match="element">
<!-- you haven't said what output you want if neither attribute is "yes" -->
</xsl:template>