XSLT:我们可以使用abs值吗? [英] XSLT: can we use abs value?
本文介绍了XSLT:我们可以使用abs值吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想知道在XLST中我们是否可以使用数学:abs(...)?
我在某个地方看到了它,但它不起作用。
我有类似的东西:
I would like to know if in XLST can we use the math:abs(...) ? I saw this somewhere but it does not work . I have something like:
<tag>
<xsl:value-of select="./product/blablaPath"/>
</tag>
我试图做类似的事情:
<tag>
<xsl:value-of select="math:abs(./product/blablaPath)"/>
</tag>
但不起作用。我正在使用java 1.6语言。
but does not work. I'm using java 1.6 language.
推荐答案
这是一个单一的XPath表达式实现 abs()
功能:
($x >= 0)*$x - not($x >= 0)*$x
此评估为 abs($ x)
。
以下是此操作的简要演示:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="text()">
<xsl:param name="x" select="."/>
<xsl:value-of select=
"($x >= 0)*$x - not($x >= 0)*$x"/>
</xsl:template>
</xsl:stylesheet>
将此转换应用于以下XML文档时:
<t>
<num>-3</num>
<num>0</num>
<num>5</num>
</t>
想要的,正确的结果(每个数字上的abs())已生成:
the wanted, correct result (abs() on every number) is produced:
<t>
<num>3</num>
<num>0</num>
<num>5</num>
</t>
这篇关于XSLT:我们可以使用abs值吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文