如何使用xslt排序?



我是XSLT的新手。这是我的示例XML。如何按事件时间降序排序事件

<?xml version="1.0" encoding="utf-8"?>
<Event>
<EventTime>1645554600000</EventTime>
<UserID>user1@domain.com</UserID>
<msg>Message1</msg>
</Event>
<Event>
<EventTime>1645607692000</EventTime>
<UserID>user2@domain.com</UserID>
<msg>Message2</msg>
</Event>
<Event>
<EventTime>1645607704000</EventTime>
<UserID>user3@domain.com</UserID>
<msg>Message3</msg>
</Event>

下面的模板只获取第一个事件

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>My XML Data</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th>time</th>
<th>msg</th>
</tr>
<xsl:for-each select="Event">
<xsl:sort select="EventTime" order="descending"/>
<tr>
<td><xsl:value-of select="EventTime"/></td>
<td><xsl:value-of select="msg"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

你需要像

<xsl:for-each select="Event">
<xsl:sort select="EventTime" data-type="number" order="descending"/>
...
</xsl:for-each>

最新更新