2016-10-12 19 views
1

私は、XSLTを使って日付のリストからジュリアンで最新の日時を見つけなければならないという要件があります。XSLTのジュリアン日付を比較する

私は、以下のXMLに

入力渡す場合:

<Orders> 
<Order> 
<OrderNumber>100</OrderNumber> 
<Date>116256</Date> 
</Order> 
<Order> 
<OrderNumber>101</OrderNumber> 
<Date>116256</Date> 
</Order> 
<Order> 
<OrderNumber>102</OrderNumber> 
<Date>116276</Date> 
</Order> 
</Orders> 

を出力:

<Result> 
<Date>116256</Date> 
</Result> 

XSLTで私を助けてください。

おかげで、あなたの「日付」は数値であり、時間が経つにつれて、これらの数字は増加していることは、あなただけの、日付でソート順を降順、および最初の1の日付を取得する必要があると仮定すると Yatan

+0

「日付」はどのような形式ですか?彼らは私には何も "ジュリアン"のように見えません。そして、116256はなぜ最新で、116276ではないのですか?また、使用できるXSLTのバージョンも記載してください。 –

+0

ユリウス日116276は、紀元前4395年5月7日です。 –

答えて

3

あなたの例の入力に加え

XSLT 1.0

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> 

<xsl:template match="/Orders"> 
    <Result> 
     <xsl:for-each select="Order"> 
      <xsl:sort select="Date" data-type="number" order="descending"/> 
      <xsl:if test="position()=1"> 
       <xsl:copy-of select="Date"/> 
      </xsl:if> 
     </xsl:for-each> 
    </Result> 
</xsl:template> 

</xsl:stylesheet> 

、結果は以下のようになります。

<?xml version="1.0" encoding="UTF-8"?> 
<Result> 
    <Date>116276</Date> 
</Result> 

これはあなたの質問にある結果ではありませんが、上記の前提のもとでは正しいものです。