问题:某个元素可能出现多次,其孙子节点中存在一个seq域。此多个元素中的seq的值不一定具有某种顺序,而且值不一定连续。可能四个元素其对应的seq值是4,2,8,1。需求是取得seq最大或者最小值的元素中其他域。
解决方法: xsl:sort
实例代码:
<xsl:template name="DISC_POD_ETATemplate">
<xsl:variable name="cntCount" select="count(../s5:transportation)"/>
<xsl:variable name="cntTransSeqMax" >
<xsl:for-each select="../s5:transportation">
<xsl:sort select="s0:voyage/s0:seq" />
<xsl:if test="position() = $cntCount">
<xsl:value-of select="s0:voyage/s0:seq/text()" />
</xsl:if>
</xsl:for-each>
</xsl:variable>
<xsl:variable name="ca_value" select="../s5:transportation[s0:voyage/s0:seq=$cntTransSeqMax]/s0:voyage/s0:pod/s0:eta/record_datetime/text()"/>
<xsl:variable name="ConvertCA" select="ScriptNS0:ConvertXMLDateTimetoYYYYMMDD($ca_value)"/>
<xsl:element name="DISC_POD_ETA">
<xsl:value-of select="$ca_value"/>
</xsl:element>
</xsl:template>