Вы хотите получить следующее выражение ...
<xsl:value-of select="sum((., 1000))"/>
Где .
представляет текущее совпадение (атрибут x
).Выполнение @x
будет искать атрибут x
для текущего атрибута x
, который не будет существовать.
Хотя, сказав это, вы можете просто сделать это в этом случае ....
<xsl:value-of select=". + 1000"/>
Обратите внимание, что вы также можете упростить сопоставление с шаблоном, например:
<xsl:template match="position/@x">
<xsl:attribute name="x">
<xsl:value-of select=". + 1000"/>
</xsl:attribute>
</xsl:template>
И если вы действительно используете XSLT 2.0, вы можете упростить его еще больше, до этого:
<xsl:template match="position/@x">
<xsl:attribute name="x" select=". + 1000"/>
</xsl:template>
Обратите внимание, чтобы добавить условие к совпадению, используйте квадратные скобки, например ...
<xsl:template match="position/@x[. < 1000]">