XSLT 1.0:日期节点的最大值

时间:2013-10-02 08:39:23

标签: xpath lxml

给出以下xml:

<Ergebnisse>
    <Spiel>
        <Datum>2013-10-02</Datum>
    </Spiel>
    <Spiel>
        <Datum>2013-10-03</Datum>
    </Spiel>
    <Spiel>
        <Datum>2013-10-03</Datum>
    </Spiel>
    <Spiel>
        <Datum>2013-10-03</Datum>
    </Spiel>
    <Spiel>
        <Datum>2013-10-06</Datum>
    </Spiel>
    <Spiel>
        <Datum>2013-10-06</Datum>
    </Spiel>
    <Spiel>
        <Datum>2013-10-06</Datum>
    </Spiel>
    <Spiel>
        <Datum>2013-10-06</Datum>
    </Spiel>
    <Spiel>
        <Datum>2014-05-01</Datum>
    </Spiel>
    <Spiel>
        <Datum>2014-05-01</Datum>
    </Spiel>
    <Spiel>
        <Datum>2014-04-27</Datum>
    </Spiel>
</Ergebnisse>

现在我需要知道,这是“Datum”中最高的日期值。我正在使用Python和lxml,所以我只能使用Xpath 1.0。 我试过了:

//Spiel[not (Datum < preceding::Spiel/Datum) and not (Datum < following::Spiel/Datum)]/Datum

但它返回所有值。我能做什么? 谢谢!

1 个答案:

答案 0 :(得分:0)

在XSLT 1.0中,您可以对值进行排序并选取最后一个。

<xsl:for-each select="Speil/Datum">
  <xsl:sort select="."/>
  <xsl:if test="position()=last()"><xsl:value-of select="."/></xsl:if>
</xsl:for-each>

我不会单独在XPath中尝试 - 如果你拥有XPath 1.0,则返回所有值并以Python宿主语言进行提取。