我会尽量让它变得清晰。我有一个XML,其内部结构如下:
<NetworkData>
<NameOfSection1>
<ChangeHistory>
<ChangeHistoryItem>
<Date>2012-06-04</Date>
<Description>Add the USIM/SIM header</Description>
</ChangeHistoryItem>
</ChangeHistory>
</NameOfSection1>
<NameOfSection2>
<ChangeHistory>
<ChangeHistoryItem>
<Date>2014-01-17</Date>
<Description>Not changed</Description>
</ChangeHistoryItem>
<ChangeHistoryItem>
<Date>2014-01-17</Date>
<Description>Not changed</Description>
</ChangeHistoryItem>
<ChangeHistoryItem>
<Date>2014-01-17</Date>
<Description>Not changed</Description>
</ChangeHistoryItem>
</ChangeHistory>
</NameOfSection2>
</NetworkData>
我想在XSL中创建一个表,其中包含所有部分中的所有ChangeHistoryItems
,按日期排序。最后,我想通过Apache FOP生成PDF文件。
我读到了for-each-group
,但我不知道应该如何使用它,我是XSL / XML的初学者。你能帮我吗?非常感谢。
答案 0 :(得分:0)
<xsl:template match="/">
<html>
<body>
<h2>Change history</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th style="text-align:left">Date</th>
<th style="text-align:left">Description</th>
</tr>
<xsl:for-each select="//ChangeHistoryItem">
<xsl:sort select="Date"/>
<tr>
<td><xsl:value-of select="Date"/></td>
<td><xsl:value-of select="Description"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
以下是说明:
<xsl:for-each select="//ChangeHistoryItem"> - all changeHistoryItem in any level
<xsl:sort select="Date"/> - Sort by elem date.