2014-05-20 75 views
-1

下面是我得到的xml以及我需要查找「RetailExitDt」情況下的最大日期以及「RetailExitDt」情況下的最短日期。您能否請建議我們如何能用xslt 1.0獲得它?XSLT查找xml文件中的最大和最小日期

<note RetailExitDt="2014-07-30" RetailIntroDt = "2014-04-19"> 
    </note> 
    <note RetailExitDt="2014-07-20" RetailIntroDt = "2014-04-09"> 
    </note> 
    <note RetailExitDt="2014-07-10" RetailIntroDt = "2014-04-29"> 
    </note> 

我是想爲下面的代碼片段,但它未能

<xsl:variable name="latest"> 
      <xsl:for-each select="note"> 
      <xsl:sort select="RetailExitDt" order="descending" /> 
      <xsl:if test="position() = 1"> 
       <xsl:value-of select="RetailExitDt"/> 
      </xsl:if> 
      </xsl:for-each> 
     </xsl:variable> 
     <xsl:value-of select="$latest"/> 

回答

1

你很接近那裏,只不過RetailExitDt是一個屬性,而不是元素。

<xsl:sort select="@RetailExitDt" order="descending" /> 
<xsl:if test="position() = 1"> 
    <xsl:value-of select="@RetailExitDt"/> 
</xsl:if> 
+0

我的運氣不好,在進行上述更改後,我仍然無法加載相同的xml。複製整個xslt以驗證<?xml version =「1.0」encoding =「UTF-8」?> < XSL:如果測試= 「位置()= 1」> 的 user3656432

+0

@ user3656432請不要在註釋中張貼代碼,因爲他們不保留格式,而是_edit_原始問題到dd附加信息。在這種特殊情況下(a)你不能把''直接放在''下面,它必須在模板內,(b)你真正的XML必須有一個'note'元素周圍的根元素(否則它不會是格式良好的),所以你需要在for-each'select'表達式中考慮這一點。 –