如果这是一个愚蠢的问题,再次表示歉意......我目前的情况是,我必须在XSLT中做一些工作,而且我真的不知道很多。我在学习,但我仍然需要帮助理解事情。使用XSLT进行条件打印
之前,我问我的问题,因为这个XML:
<group>
<person>
<datum type='sex'>f</datum>
<datum type='name'>Gina</datum>
<datum type='age'>40</datum>
</person>
<person>
<datum type='sex'>m</datum>
<datum type='name'>Fred</datum>
<datum type='age'>50</datum>
</person>
<person>
<datum type='sex'>m</datum>
<datum type='name'>Charles</datum>
<datum type='age'>30</datum>
</person>
<person>
<datum type='sex'>f</datum>
<datum type='name'>Betty</datum>
<datum type='age'>20</datum>
</person>
<person>
<datum type='sex'>?</datum>
<datum type='name'>Pat</datum>
<datum type='age'>15</datum>
</person>
<person>
<datum type='sex'>?</datum>
<datum type='name'>Jamie</datum>
<datum type='age'>55</datum>
</person>
</group>
而这个XSLT:
其中产量这样的结果:
而且,现在,最后,我的问题。如何修改XSLT,产生的结果是这样的:
我想我要跟踪每个人的性别变化何时发生时插入新行,和,因此,这样做这在XSLT中:
<xsl:if test="datum[@type='sex'] != $last">
但这是我的问题。我知道XSLT中的变量是不可修改的,所以......完成这个任务的最好方法是什么?我已经在All-Knowing'Net的全部搜索结果中找到了答案,但还没有找到任何有关如何做到这一点的好例子。
一如既往,任何和所有的线索赞赏。
您可以使用分组它生成的代码。如果您使用XSLT 2.0,请查看“for-each-group”的示例。在XSLT 1.0中搜索[Muenchian分组](http://www.jenitennison.com/xslt/grouping/muenchian.html) – helderdarocha