<xsl:choose>
<xsl:when test="position() != last()">
</xsl:when>
</xsl:choose>
我正在尝试在 EMD Rpl 函数中使用 last(( 函数,但这不起作用
我不确定 Responys EMD 如何配置 FreeMarker。我也看到Oracle有时会使用他们自己的FreeMarker分支,这可能是基于一些非常旧的版本。但我会假设它像往常/最新的 FreeMarker 一样工作,但也许它没有。
当someElement['position()']
调用 XPath 函数时,出于某种原因,它总是返回 -1。但是如果你用#list
列出元素,你可以使用?is_last
,就像这样(使用数据模型的 https://try.freemarker.apache.org 语法(。
数据模型:
doc=<root>
<a>text 1</a>
<a>text 2</a>
</root>
模板:
<#list doc.root.a as a>
${a}
<#if a?is_last>
That was the last one.
</#if>
</#list>
其中打印:
text 1
text 2
That was the last one.
(还有其他花哨的功能,可以根据与#list
相关的项目的位置来做事,比如#sep
,但请参阅 FreeMarker 文档。
在#list
之外,如果你只有来自某个地方的元素,myElement@@next_sibling_element[0]??
将返回最后一个元素的false
。