色を変更するために与えられたxslファイル
<xsl:if test="!colorChanges()">
<StaticLabel style="{StaticLabel/@style}">
<Caption>
<xsl:value-of select="$StaticLabel/Caption"/>
</Caption>
<PreviewCaption>
<xsl:value-of select="$StaticLabel/Caption"/>
</PreviewCaption>
</StaticLabel>
</xsl:if>
このxmlデータを考えると
<StaticLabel style="font-family:Arial;color:#000000;font-size:9pt">
<Caption><![CDATA[FoodType]]></Caption>
<Name><![CDATA[French]]></Name>
</StaticLabel>
</xsl:if>
xslt後の現在の結果
<StaticLabel style="font-family:Arial;color:#000000;font-size:9pt">
<Caption>Food Type</Caption>
<PreviewCaption>French</PreviewCaption>
</StaticLabel>
とにかく、xmlファイルを更新せずにxsltを実行する前に、他のスタイル属性を保持したまま色を変更するだけですか?
期待される結果:
<StaticLabel style="font-family:Arial;color:#CCCCCC;font-size:9pt">
<Caption>Food Type</Caption>
<PreviewCaption>French</PreviewCaption>
</StaticLabel>
可能なXSLソリューション
<xsl:if test="colorChanges()">
<StaticLabel>
<xsl:attribute name="style">
//other style attributes stay same and ONLY edit color
<xsl:text>color:#CCCCCC"</xsl:text>
</xsl:attribute>
<Caption>
<xsl:value-of select="$StaticLabel/Caption"/>
</Caption>
<PreviewCaption>
<xsl:value-of select="$StaticLabel/Caption"/>
</PreviewCaption>
</StaticLabel>
</xsl:if>