将<xsl:value-of>结果乘以-1 </xsl:value-of>

时间:2014-09-05 23:26:12

标签: xml xslt xpath svg

新手/初学者XSL用户在这里。

我的XSLT文档中包含以下模板:

<xsl:template name="getpoint"> <xsl:param name="nodenum"/> <xsl:value-of select="//nodeCoord[nodeNumber=$nodenum]/nodeXCoord"/> <xsl:text>,</xsl:text> <xsl:value-of select="//nodeCoord[nodeNumber=$nodenum]/nodeYCoord"/> </xsl:template>

正在使用完整的XSLT文档来生成SVG图形。但是,我希望翻转浏览器的Y坐标系,因为我的源数据采用传统的坐标系统。

我的问题非常简单:如何将nodeYCoord乘以-1并将结果发送到浏览器而不是<xsl:value-of>元素生成的值?

编辑:请不要提供有关如何翻转Y坐标系的替代方法。我已经研究了这个,对于我的具体应用,我很确定这是最好的方法(假设我可以使它工作)。

2 个答案:

答案 0 :(得分:1)

  

我的问题非常简单:如何将nodeYCoord乘以-1和   将结果发送到浏览器而不是产生的值   <xsl:value-of>元素?

答案也很简单:使用减号。而不是:

<xsl:value-of select="//nodeCoord[nodeNumber=$nodenum]/nodeYCoord"/>

写:

<xsl:value-of select="-//nodeCoord[nodeNumber=$nodenum]/nodeYCoord"/>
  

请不要提供有关如何翻转Y的替代方法   坐标系。我已经研究了这个,并且针对我的具体情况   应用程序我很确定这是最好的方法   (假设我可以使它工作)。

也许你应该再看看它。

答案 1 :(得分:0)

将值保存到变量中,然后在xpath表达式中使用它

<xsl:variable name="yval" select="//nodeCoord[nodeNumber=$nodenum]/nodeYCoord/text()"/>
<xsl:value-of select="-1 * $yval"/>