gpt4 book ai didi

xslt - 根据参数中定义的索引选择 xsl 元素

转载 作者:行者123 更新时间:2023-12-04 03:15:14 25 4
gpt4 key购买 nike

我想通过索引选择一个元素,索引号通过参数传入,参数通过 PHP 传入。这是我正在尝试的:

//PHP
$xslt->setParameter('','player',$player);
$xslt->importStylesheet( $XSL );
print $xslt->transformToXML( $data );

//xslt
<xsl:param name="player" data-type="number"/>

<template match="/">
<xsl:value-of select="result[$player]/@name" />
</template>

而且我知道参数的值被正确传递了,因为我可以输出参数的值($player)并且它会输出正确的值。如果我将索引号“$player”硬编码为我想要的任意数量的索引,如下所示:

<template match="/">
<xsl:value-of select="result[2]/@name" />
</template>

它有效。所以,我在这里做错了什么。你不能使用参数/变量来选择索引吗?

最佳答案

它可能会将您的 xsl:param 的值作为字符串而不是数字来计算。您可以尝试使用 number() 函数将其显式转换为数字。

<xsl:value-of select="result[number($player)]/@name" />

指定数字的谓词过滤器是 [position()=$param] 的简写。您可以在谓词过滤器中使用 xsl:param,就像这样,它将评估 xsl:param 值作为数字:

<xsl:value-of select="result[position()=$player]/@name" />

关于xslt - 根据参数中定义的索引选择 xsl 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3695420/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com