Xml 如何使用XSLT增加变量的大小

Xml 如何使用XSLT增加变量的大小,xml,xslt,attributes,Xml,Xslt,Attributes,我有一个包含以下属性集的XSLT文件 <xsl:attribute-set name="related-links__content"> <xsl:attribute name="start-indent"><xsl:value-of select="$side-col-width"/></xsl:attribute> </xsl:attribute-set> XSLT可以做到这一点吗?如果可以,如何做到 $side col

我有一个包含以下属性集的XSLT文件

<xsl:attribute-set name="related-links__content">
    <xsl:attribute name="start-indent"><xsl:value-of select="$side-col-width"/></xsl:attribute>
</xsl:attribute-set>
XSLT可以做到这一点吗?如果可以,如何做到


$side col width是手动设置的

我不太清楚你所说的“手动设置”是什么意思。如果您有以下情况:

<xsl:variable name="side-col-width" select="'24pt'"/>

然后:


将返回
36pt


这是否是最好的工作流程是另一个问题。

您知道
$side col width
的确切结构吗?例如,是否总是在某些数字后加上“pt”-或者单位是否可以更改?事实上,为什么不告诉我们如何填充
$side col width
?$side col width是手动设置的。它应该总是在pts中(所以是的,它总是一些数字后面跟着“pt”)。我同意使用这种格式的解决方案。只有使用number()首先将字符串转换为数字时,这才有效:
number(前面的子字符串($side col width,'pt'))+12…
,这可能意味着您使用的是XSLT 2.0。供将来参考:请始终告诉我们您使用的XSLT版本。“仅当我使用number()首先将字符串转换为数字时,此操作才有效”这应该是不必要的,因为尝试在加法中使用字符串应将其隐式转换为数字(在Xalan、libxslt和Saxon 6.5和9中测试)。你在用哪个处理器?
<xsl:variable name="side-col-width" select="'24pt'"/>
<xsl:value-of select="concat(substring-before($side-col-width, 'pt') + 12, 'pt')"/>