xml - XSLT + XML - 过滤结果
问题描述
第一次做这样的事情,我知道它的基本原理,但是我有一个包含各种新闻故事的 XML 文件,每个新闻都有一个 ID,随着故事的添加而增加。
我正在尝试根据降序的 ID 输出最近的三个故事。
这个 XSLT 有什么问题?
提前致谢
<?xml version="1.0" encoding="UTF-8"?>
<html xsl:version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<body>
<xsl:for-each select="items/item">
<xsl:sort select="id" data-type="number" order="descending" />
<xsl:variable name="image"><xsl:value-of select="image"/></xsl:variable>
<xsl:variable name="pagelink"><xsl:value-of select="link"/></xsl:variable>
<xsl:variable name="blogtitle"><xsl:value-of select="title"/></xsl:variable>
<div class="col-md-4 mb-4 mb-md-0 float-left" >
<div class="card border-0 box-shadow-4">
<div class="card-img-top position-relative overlay">
<img src="control/blog/{$image}" class="img-fluid" alt="{$blogtitle}" />
</div>
<div class="card-body p-4">
<p class="font-weight-semibold text-2 text-color-hover-primary mb-0" ><xsl:value-of select="date"/></p>
<h4 class="font-weight-semibold text-5 text-color-primary mb-2"><xsl:value-of select="title"/></h4>
<div style="height:100px;">
<p class="text-3"><xsl:value-of select="intro"/></p>
</div>
<a href="/blog/{$pagelink}" class="btn btn-modern text-2 btn-primary border-0 mt-4">View</a>
</div>
</div>
</div>
</xsl:for-each>
</body>
</html>
解决方案
如果需要xsl:sort
,将 in 的其他内容包装xsl:for-each
成<xsl:if test="position() < 4">...</xsl:if>
只处理排序后的前三个元素。
推荐阅读
- javascript - DataTables js,如何使用带有“回调”函数的“ajax”选项?
- c - 对于特定问题,我无法理解 c 语言中 for 循环的增量部分
- java - 如何画一条沿着我的手指的线
- python - 我想在几秒钟不活动后自动删除文本
- azure - 401 Unauthorized while access azure function with bearer token | 函数应用受 AAD 保护
- java - java.sql.SQLSyntaxErrorException:ORA-00903:Java 中的无效表名在函数返回时选择计数
- python - 与 ipynb.fs.full 的区别。
导入 * 和来自 ipynb.fs.defs。 进口 * - linux - 尝试在 ubuntu 20.04 上安装 vue/cli 时权限被拒绝
- java - 春季启动中的@NotNull 无法按预期工作
- django - Django使用多个redis进行缓存