Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
XSLT2.0高级计算包括Cos()Sin()_Xslt_Xslt 1.0_Xslt 2.0_Exslt - Fatal编程技术网

XSLT2.0高级计算包括Cos()Sin()

XSLT2.0高级计算包括Cos()Sin(),xslt,xslt-1.0,xslt-2.0,exslt,Xslt,Xslt 1.0,Xslt 2.0,Exslt,正如我所知,高级计算没有现成的XSLT函数,有人知道我如何在XSLT中进行余弦/Sin()等数学运算吗?这个要求也是非常具体的,我需要扩展可以下载(而不是指向url),这样我就可以下载它并在XSL脚本中作为源代码引用。我无法下载EXSLT源文件进行尝试,因为该页面似乎存在问题。您还可以提供一个简单的示例,说明如何在脚本中引用源代码并计算一些简单的内容,如: <input> <num1>1</num1> <num2>1</num2> &l

正如我所知,高级计算没有现成的XSLT函数,有人知道我如何在XSLT中进行余弦/Sin()等数学运算吗?这个要求也是非常具体的,我需要扩展可以下载(而不是指向url),这样我就可以下载它并在XSL脚本中作为源代码引用。我无法下载EXSLT源文件进行尝试,因为该页面似乎存在问题。您还可以提供一个简单的示例,说明如何在脚本中引用源代码并计算一些简单的内容,如:

<input>
<num1>1</num1>
<num2>1</num2>
</input>

1.
1.
输出为:

<output>
<cosOfnum1>0.54030230586</cosOfnum1>
<sinOfnum2>0.8414709848</sinOfnum2>
</output>

0.54030230586
0.8414709848
谢谢大家!

Saxon 9(包括HE,使用9.6进行测试,另请参见“来自Saxon 9.6,可在所有版本中使用”)对中定义的函数具有现成的支持,以下是一个示例:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
    exclude-result-prefixes="xs math"
    version="2.0">

    <xsl:template match="input">
        <output>
            <xsl:apply-templates/>
        </output>
    </xsl:template>

    <xsl:template match="num1">
        <cosOfnum1>
            <xsl:value-of select="math:cos(.)"/>
        </cosOfnum1>
    </xsl:template>

    <xsl:template match="num2">
        <sinOfnum2>
            <xsl:value-of select="math:sin(.)"/>
        </sinOfnum2>
    </xsl:template>

</xsl:stylesheet>

我还测试了XmlPrime 4在使用命令行选项
--xt30
时是否正确运行上述样式表,因此它还内置了对这些函数的支持

Altova XMLSpy 2017还支持命名空间
xmlns:math=”中的函数http://www.w3.org/2005/xpath-functions/math“
开箱即用,但仅在
version=“3.0”
样式表中

据我所知,高级应用程序没有现成的XSLT函数 计算,有人知道我怎么做数学吗 XSLT中的余弦/Sin()

使用FXSL库,可以使用纯XSLT 1.0或XSLT 2.0编写的三角函数:

FXSL的数学模块实现了

  • 众所周知的三角函数:
    sin()
    cos()
    tan()
    cot()
    sec()
    csc()
  • 双曲三角函数:
    hsin()
    hcos()
    htan()
    hcot()
    hsec()
    hcsc()
  • 指数函数和对数函数:
    exp()
    ln()
    log10()
    log2()
    log()
    pow()
    sqrt()
  • 求解一个实变量的方程:牛顿-拉斐逊法和二进制搜索法
  • 反向函数:
    arccos()
    arccos()
    arctan()
    arccot()
    arccsc()
    archsin()
    archcos()
    archtan()
    archcot()
    archsec()

  • 您的问题被标记为
    libxslt
    xslt2.0
    ,这没有任何意义。如果您使用的是
    libxslt
    ,那么您已经支持EXSLT
    math:sin()
    math:cos()
    函数,而无需下载或引用任何内容。其他处理器可能支持自己的扩展。对于任何处理器,您都可以使用。您需要告诉我们您使用的是什么XSLT处理器,以及在什么环境中。对不起,michael.hor257k,我已经删除了该标记。@MichaelKay,我实际上是在尝试将它与javax.xml.transformer合并到我的java应用程序中,而不是用java进行计算,我想找到一种在XSLT中实现的方法。@R.C.javax.xml接口(通常称为JAXP)是几个XSLT处理器支持的接口,包括Xalan、Saxon和其他。所以这并没有告诉我们您使用的是哪个XSLT处理器。但它确实告诉我们,您处于Java环境中,这意味着使用Saxon不存在任何技术障碍,Saxon提供了标准的XPath 3.0数学函数库。