1

给定以下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>

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

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

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

4

1 回答 1

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 宿主语言中进行提取。

于 2013-10-02T09:54:33.537 回答