gpt4 book ai didi

xslt - XSLT 2.0如何在输出的tokenize()中测试position()

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

在XSLT 2.0中,我有一个参数,它以分隔的文档名称字符串形式出现,例如:
ms609_0080.xml~ms609_0176.xml~ms609_0210.xml~ms609_0418.xml

tokenize()此字符串,并使用xsl:for-each在其间循环,以将每个文档传递给key。然后,将来自键的结果组装成一个逗号分隔的字符串以输出到屏幕。

<xsl:variable name="list_of_corresp_events">
<xsl:variable name ="tokenparam" select="tokenize($paramCorrespdocs,'~')"/>
<xsl:for-each select="$tokenparam">
<xsl:choose>
<xsl:when test=".[position() != last()]">
<xsl:value-of select="document(concat($paramSaxondatapath, .))/(key('correspkey',$correspid))/@xml:id"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="concat(document(concat($paramSaxondatapath, .))/(key('correspkey',$correspid))/@xml:id, ', ')"/>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</xsl:variable>


一切正常,除了当我输出变量 $list_of_corresp_events时,它看起来类似于以下内容,并带有意外的逗号:

ms609-0080-2, ms609-0176-1, ms609-0210-1, ms609-0418-1,

通常,最后一个逗号不应基于 test=".[position() != last()]"出现?排名可能不适用于标记化数据吗?我没有找到将 string-join()应用于此的方法。

非常感谢。

最佳答案

更改

<xsl:when test=".[position() != last()]">




<xsl:when test="position() != last()">


然后,所有功能都应按需工作。

关于xslt - XSLT 2.0如何在输出的tokenize()中测试position(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52957727/

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