Я много узнал о том, как получить доступ к значению атрибута, когда XSLT соответствует элементу.Но я не могу найти способ получить доступ к значению атрибута, когда сопоставление для этого атрибута.
Например, вот фрагмент моего исходного XML-файла:
<math xmlns="http://www.w3.org/1998/Math/MathML" alttext="">
<mfrac>
<mn>20</mn>
<mn>60</mn>
</mfrac>
<mo>=</mo>
<mfrac>
<mi mathvariant="bold">x</mi>
<mn>100</mn>
</mfrac>
</math>
И вот шаблон, который я использую (он не работает):
<xsl:template match="mathml:math//mathml:mi/@mathvariant">
<xsl:copy>
<xsl:choose>
<xsl:when test=".='bold'">
<xsl:attribute name="mathvariant">
<xsl:value-of select="'bold-sans-serif'"/>
</xsl:attribute>
</xsl:when>
<xsl:when test=".='italic'">
<xsl:attribute name="mathvariant">
<xsl:value-of select="'sans-serif-italic'"/>
</xsl:attribute>
</xsl:when>
<xsl:otherwise></xsl:otherwise>
</xsl:choose>
</xsl:copy>
</xsl:template>
Я хочу использовать команду stmt для изменения атрибута mathvariant элемента на основе его значения.Я знаю, что мне нужно сопоставить сам атрибут, чтобы изменить его значение (эта часть работает), но я не знаю, как получить доступ к значению сопоставленного атрибута в операторе when.test = ". = 'bold'" не работает.«Точка» не означает, что я думаю, это означает, что совпадение является атрибутом.Чего мне не хватает?