第一次做这样的事情,我知道它是基本的,但是我有一个包含各种新闻故事的XML文件,每个故事都有一个ID,随着故事的添加而增加。
我正在尝试根据降序id输出最近的三个故事。
这个XSLT有什么问题?
Thanks in advance
<?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
,则将xsl:for-each
的其他内容打包到<xsl:if test="position() < 4">...</xsl:if>
中,排序后只处理前三个元素