<xsl:choose>
<xsl:when test="position() != last()">
</xsl:when>
</xsl:choose>
我正在尝试在 EMD Rpl 函数中使用 last() 函数,但这不起作用
<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
最后一个元素。