我在XSL文件中有一个变量声明为
<xsl:variable name="check" >
<xsl:value-of select="normalize-space(substring-before(substring-after(@style,'FONT-SIZE:'),'pt'))"/>
</xsl:variable>
它给出了我的XML中的字体大小,无论它是12,14,16
<xsl:template name="fontSize">
<xsl:choose>
<xsl:when test="round($check=8) or round($check=7) or round($check=6)">
<font size="1" face="$Fface">
<xsl:value-of select="."/>
</font>
</xsl:when>
<xsl:when test="round($check=10) or round($check=9)">
<font size="2" face="$Fface">
<xsl:value-of select="."/>
</font>
</xsl:when>
<xsl:otherwise>
<font size="3" face="$Fface">
<xsl:value-of select="."/>
</font>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
我制作一个模板,从选择查询中选择我需要的尺寸
我希望在尺寸属性中设置所选尺寸
<font size="$check"
face="{normalize-space(substring-before(substring-after(@style,'FONT-FAMILY:'),';'))}">
是正确的还是有其他方法可以做到这一点。
答案 0 :(得分:1)
首先,替换它:
<xsl:variable name="check" >
<xsl:value-of select="xxxxx"/>
</xsl:variable>
由此:
<xsl:variable name="check" select="xxxxx"/>
不仅更简洁,而且效率更高。 (这个错误似乎非常普遍。)
其次,我不知道这在整个项目的上下文中是否有意义,而不是生成字体元素,现代的方法是使用CSS。输出
<span class="c{$check}"><xsl:value-of select="."/></span>
然后定义CSS类来控制详细的再现。