2016-04-12 14 views
0

1/xmlに日付のあるイベントのリストがあります。 各イベントの日付をCSV形式で出力したいと思います。最後の前の兄弟を、何かに等しく、最初の次の兄弟を何かに等しく見つける方法?

17/01/2012;Event 1 
17/01/2012;Event 2 
17/01/2012;Event 3 
20/02/2012;Event 4 
20/02/2012;Event 5 
20/02/2012;Event 6 

2/I:で

<Events> 
<Event> 
    <Date>17/01/2012</Date> 
    <Description>Event 1</Description> 
</Event> 
<Event> 
    <Date>01/01/1900</Date> 
    <Description>Event 2</Description> 
</Event> 
<Event> 
    <Date>01/01/1900</Date> 
    <Description>Event 3</Description> 
</Event> 
<Event> 
    <Date>20/02/2012</Date> 
    <Description>Event 4</Description> 
</Event> 
<Event> 
    <Date>01/01/1900</Date> 
    <Description>Event 5</Description> 
</Event> 
<Event> 
    <Date>01/01/1900</Date> 
    <Description>Event 6</Description> 
</Event> 
</Events> 

結果:日付が1900年1月1日である場合には、例えば1900年1月1日

の異なる最後の前の兄弟を検索xmlに日付を持つイベントのリストを持つ 各イベントの日付をCSV形式で出力したいと思います。

17/01/2012;Event 1 
20/02/2012;Event 2 
20/02/2012;Event 3 
20/02/2012;Event 4 
30/03/2012;Event 5 
30/03/2012;Event 6 
30/03/2012;Event 7 

私はドン」:中

<Events> 
<Event> 
    <Date>17/01/2012</Date> 
    <Description>Event 1</Description> 
</Event> 
<Event> 
    <Date>01/01/1900</Date> 
    <Description>Event 2</Description> 
</Event> 
<Event> 
    <Date>01/01/1900</Date> 
    <Description>Event 3</Description> 
</Event> 
<Event> 
    <Date>20/02/2012</Date> 
    <Description>Event 4</Description> 
</Event> 
<Event> 
    <Date>01/01/1900</Date> 
    <Description>Event 5</Description> 
</Event> 
<Event> 
    <Date>01/01/1900</Date> 
    <Description>Event 6</Description> 
</Event> 
<Event> 
    <Date>30/03/2012</Date> 
    <Description>Event 7</Description> 
</Event> 
</Events> 

結果:日付が1900年1月1日である場合には、例えば1900年1月1日

の異なる第1次の兄弟を検索値に等しい次または前の項目の検索を行う方法を見つける。 ご協力いただきありがとうございます。

+0

ご質問にお答えできませんか? –

答えて

0

最初のケースでは、試してください。

<xsl:template match="/Events"> 
    <xsl:for-each select="Event"> 
     <xsl:choose> 
      <xsl:when test="Date='01/01/1900'"> 
       <xsl:value-of select="preceding-sibling::Event[Date!='01/01/1900'][1]/Date" /> 
      </xsl:when> 
      <xsl:otherwise> 
       <xsl:value-of select="Date" /> 
      </xsl:otherwise> 
     </xsl:choose> 
     <xsl:text>;</xsl:text> 
     <xsl:value-of select="Description" /> 
     <xsl:text>&#10;</xsl:text> 
    </xsl:for-each> 
</xsl:template> 

preceding-siblingすなわちreverse axisある:最も近い先行兄弟が最初のものではなく、最後のものです。

関連する問題