我想在xpath表达式中使用xslt参数的值.具体来说,作为表达式中not()调用的一部分<xsl:if.
<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!-- my_param contains a string '/foo/bar', passed in from ant -->
<!-- the 'no' is just a default value -->
<xsl:param name="my_param">no</xsl:param>
<xsl:variable name="var_myparam" select="$my_param" />
<!-- ... -->
<!-- this works -->
<xsl:if test="not(/foo/bar)" /> <!-- expression returns boolean true -->
<!-- ... -->
</xsl:if>
<!-- I can't figure out how to do this the right way -->
<!-- None of these appear to work -->
<xsl:if test="not($var_myparam)" /> <!-- expression …Run Code Online (Sandbox Code Playgroud) 我有一个看起来像的文件
<root>
<element>
<subelement1 />
<subelement2 />
</element>
<element>
<subelement2 />
<subelement1 />
</element>
</root>
Run Code Online (Sandbox Code Playgroud)
在我的XSLT表中,/element[2]/[someNode]我希望得到一个代表距离的数字/element[1]/[someNode](即前面兄弟的数量/element1/[someNode]).例如,在的情况下/element[2]/subelement1,我想有一些办法让数字2,从远处/element[1]来/element[1]/subelement2.我只需要第一个实例的给定节点名称的距离<element>.
我直觉地认为我可以构建它
<xsl:variable name="nodename" select="name()" />
<xsl:value-of select="/element[1]/$nodename/preceding-sibling::*" />
Run Code Online (Sandbox Code Playgroud)
但不幸的是这张表没有编译.我想在XSLT中实现什么?
我想在样式表中使用EXSLT - DYN:EVALUATE.我添加了名称的速度,但我不知道我需要导入的.xsl文件在哪里.我不相信我已经安装了XALAN来指向导入.我该如何安装?一旦安装并将其指向.xsl它是否会获取该功能并应用它?我正在运行Windows.XSLT文件包含在XML文档的顶部.
谢谢
皮特