gpt4 book ai didi

xml - 如何使用 XPath 选择最后 N 个元素?

转载 作者:数据小太阳 更新时间:2023-10-29 01:41:03 27 4
gpt4 key购买 nike

我支持一个网站,该网站生成内容 XML,然后使用 XSLT 将其转换为网页。我被要求创建一个新的样式表,它将“存档”页面的输出转换为 Atom 以进行联合。我遇到的问题是存档页面包含相当多的项目 — 142 项并且还在增加 — 并且提要永远不应超过三十项。

目前,存档页面的输出看起来像这样:

<archive>
<year>
<month>
<day>
<day>
...
</month>

...
</year>

...
</archive>

yearmonth 标签由 HTML 转换使用,但与 Atom 提要完全无关。我曾希望将 position() 函数与后代轴一起使用会起作用 (//day[position()>last()-30]),但这会选择每个月的最后 30 天,这根本不是我需要的。 :-)

有没有办法用 XSLT 或 XPath 来做到这一点?不得不修改 XML 生成器以添加,比如说,过去三十天的 feed="true" 属性,这似乎是一个非常讨厌的混搭。

最佳答案

position()/last() 返回当前上下文中的position/last 位置,因此当导航器定位在一个 时,position() 将返回该月内的 ,last() 将返回该月的最后 ,但我猜你知道。

因此,您可以像以前一样在选择之前将数组中的所有 展平并放入一个变量中。

<xsl:variable name="days" select="//day"/>
<xsl:apply-templates select="$days[position()>last()-30]" />

关于xml - 如何使用 XPath 选择最后 N 个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/458596/

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